/*
 * Copyright (c) 2022, Shenzhen CVA Innovation CO.,LTD
 * All rights reserved.
 *
 * Shenzhen CVA Innovation CO.,LTD (CVA chip) is supplying this file for use
 * exclusively with CVA's microcontroller products. This file can be freely
 * distributed within development tools that are supporting such microcontroller
 * products.
 *
 * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
 * CVA SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
 * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 */

#ifndef _TRGMUX_REG_H_
#define _TRGMUX_REG_H_

/*! \brief Contains public interface to various functions related
 *         to the TRGMUX Registers
 */

/*******************************************************************************
 * the includes
 ******************************************************************************/

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

/*******************************************************************************
 * the defines
 ******************************************************************************/

/* DMAMUX0 Bit Fields */
#define TRGMUX_DMAMUX0_LK_MASK    (0x80000000u)
#define TRGMUX_DMAMUX0_LK_SHIFT   (31u)
#define TRGMUX_DMAMUX0_LK_WIDTH   (1u)
#define TRGMUX_DMAMUX0_SEL3_MASK  (0x7F000000u)
#define TRGMUX_DMAMUX0_SEL3_SHIFT (24u)
#define TRGMUX_DMAMUX0_SEL3_WIDTH (7u)
#define TRGMUX_DMAMUX0_SEL2_MASK  (0x7F0000u)
#define TRGMUX_DMAMUX0_SEL2_SHIFT (16u)
#define TRGMUX_DMAMUX0_SEL2_WIDTH (7u)
#define TRGMUX_DMAMUX0_SEL1_MASK  (0x7F00u)
#define TRGMUX_DMAMUX0_SEL1_SHIFT (8u)
#define TRGMUX_DMAMUX0_SEL1_WIDTH (7u)
#define TRGMUX_DMAMUX0_SEL0_MASK  (0x7Fu)
#define TRGMUX_DMAMUX0_SEL0_SHIFT (0u)
#define TRGMUX_DMAMUX0_SEL0_WIDTH (7u)

/* EXTOUT0 Bit Fields */
#define TRGMUX_EXTOUT0_LK_MASK    (0x80000000u)
#define TRGMUX_EXTOUT0_LK_SHIFT   (31u)
#define TRGMUX_EXTOUT0_LK_WIDTH   (1u)
#define TRGMUX_EXTOUT0_SEL3_MASK  (0x7F000000u)
#define TRGMUX_EXTOUT0_SEL3_SHIFT (24u)
#define TRGMUX_EXTOUT0_SEL3_WIDTH (7u)
#define TRGMUX_EXTOUT0_SEL2_MASK  (0x7F0000u)
#define TRGMUX_EXTOUT0_SEL2_SHIFT (16u)
#define TRGMUX_EXTOUT0_SEL2_WIDTH (7u)
#define TRGMUX_EXTOUT0_SEL1_MASK  (0x7F00u)
#define TRGMUX_EXTOUT0_SEL1_SHIFT (8u)
#define TRGMUX_EXTOUT0_SEL1_WIDTH (7u)
#define TRGMUX_EXTOUT0_SEL0_MASK  (0x7Fu)
#define TRGMUX_EXTOUT0_SEL0_SHIFT (0u)
#define TRGMUX_EXTOUT0_SEL0_WIDTH (7u)

/* ADC Bit Fields */
#define TRGMUX_ADC_LK_MASK        (0x80000000u)
#define TRGMUX_ADC_LK_SHIFT       (31u)
#define TRGMUX_ADC_LK_WIDTH       (1u)
#define TRGMUX_ADC_SEL3_MASK      (0x7F000000u)
#define TRGMUX_ADC_SEL3_SHIFT     (24u)
#define TRGMUX_ADC_SEL3_WIDTH     (7u)
#define TRGMUX_ADC_SEL2_MASK      (0x7F0000u)
#define TRGMUX_ADC_SEL2_SHIFT     (16u)
#define TRGMUX_ADC_SEL2_WIDTH     (7u)
#define TRGMUX_ADC_SEL1_MASK      (0x7F00u)
#define TRGMUX_ADC_SEL1_SHIFT     (8u)
#define TRGMUX_ADC_SEL1_WIDTH     (7u)
#define TRGMUX_ADC_SEL0_MASK      (0x7Fu)
#define TRGMUX_ADC_SEL0_SHIFT     (0u)
#define TRGMUX_ADC_SEL0_WIDTH     (7u)

/* MFT0 Bit Fields */
#define TRGMUX_MFT0_LK_MASK       (0x80000000u)
#define TRGMUX_MFT0_LK_SHIFT      (31u)
#define TRGMUX_MFT0_LK_WIDTH      (1u)
#define TRGMUX_MFT0_SEL3_MASK     (0x7F000000u)
#define TRGMUX_MFT0_SEL3_SHIFT    (24u)
#define TRGMUX_MFT0_SEL3_WIDTH    (7u)
#define TRGMUX_MFT0_SEL2_MASK     (0x7F0000u)
#define TRGMUX_MFT0_SEL2_SHIFT    (16u)
#define TRGMUX_MFT0_SEL2_WIDTH    (7u)
#define TRGMUX_MFT0_SEL1_MASK     (0x7F00u)
#define TRGMUX_MFT0_SEL1_SHIFT    (8u)
#define TRGMUX_MFT0_SEL1_WIDTH    (7u)
#define TRGMUX_MFT0_SEL0_MASK     (0x7Fu)
#define TRGMUX_MFT0_SEL0_SHIFT    (0u)
#define TRGMUX_MFT0_SEL0_WIDTH    (7u)

/* MFT1 Bit Fields */
#define TRGMUX_MFT1_LK_MASK       (0x80000000u)
#define TRGMUX_MFT1_LK_SHIFT      (31u)
#define TRGMUX_MFT1_LK_WIDTH      (1u)
#define TRGMUX_MFT1_SEL3_MASK     (0x7F000000u)
#define TRGMUX_MFT1_SEL3_SHIFT    (24u)
#define TRGMUX_MFT1_SEL3_WIDTH    (7u)
#define TRGMUX_MFT1_SEL2_MASK     (0x7F0000u)
#define TRGMUX_MFT1_SEL2_SHIFT    (16u)
#define TRGMUX_MFT1_SEL2_WIDTH    (7u)
#define TRGMUX_MFT1_SEL1_MASK     (0x7F00u)
#define TRGMUX_MFT1_SEL1_SHIFT    (8u)
#define TRGMUX_MFT1_SEL1_WIDTH    (7u)
#define TRGMUX_MFT1_SEL0_MASK     (0x7Fu)
#define TRGMUX_MFT1_SEL0_SHIFT    (0u)
#define TRGMUX_MFT1_SEL0_WIDTH    (7u)

/* PDB Bit Fields */
#define TRGMUX_PDB_LK_MASK        (0x80000000u)
#define TRGMUX_PDB_LK_SHIFT       (31u)
#define TRGMUX_PDB_LK_WIDTH       (1u)
#define TRGMUX_PDB_SEL0_MASK      (0x7Fu)
#define TRGMUX_PDB_SEL0_SHIFT     (0u)
#define TRGMUX_PDB_SEL0_WIDTH     (7u)

/* LPIT Bit Fields */
#define TRGMUX_LPIT_LK_MASK       (0x80000000u)
#define TRGMUX_LPIT_LK_SHIFT      (31u)
#define TRGMUX_LPIT_LK_WIDTH      (1u)
#define TRGMUX_LPIT_SEL3_MASK     (0x7F000000u)
#define TRGMUX_LPIT_SEL3_SHIFT    (24u)
#define TRGMUX_LPIT_SEL3_WIDTH    (7u)
#define TRGMUX_LPIT_SEL2_MASK     (0x7F0000u)
#define TRGMUX_LPIT_SEL2_SHIFT    (16u)
#define TRGMUX_LPIT_SEL2_WIDTH    (7u)
#define TRGMUX_LPIT_SEL1_MASK     (0x7F00u)
#define TRGMUX_LPIT_SEL1_SHIFT    (8u)
#define TRGMUX_LPIT_SEL1_WIDTH    (7u)
#define TRGMUX_LPIT_SEL0_MASK     (0x7Fu)
#define TRGMUX_LPIT_SEL0_SHIFT    (0u)
#define TRGMUX_LPIT_SEL0_WIDTH    (7u)

/* LPTMR Bit Fields */
#define TRGMUX_LPTMR_LK_MASK      (0x80000000u)
#define TRGMUX_LPTMR_LK_SHIFT     (31u)
#define TRGMUX_LPTMR_LK_WIDTH     (1u)
#define TRGMUX_LPTMR_SEL0_MASK    (0x7Fu)
#define TRGMUX_LPTMR_SEL0_SHIFT   (0u)
#define TRGMUX_LPTMR_SEL0_WIDTH   (7u)

/*******************************************************************************
 * the typedefs
 ******************************************************************************/

/*! \brief The definition of TRGMUX registers
 */
typedef struct _TrgMuxRegType_
{
    volatile uint32_t DMAMUX0;      /*!< TRGMUX DMAMUX0 register, offset: 0x0 */
    volatile uint32_t EXTOUT0;      /*!< TRGMUX EXTOUT0 register, offset: 0x4 */
    uint32_t          RESERVED0[1]; /*!< Reserverd block, offset: 0x08 */
    volatile uint32_t ADC;          /*!< TRGMUX ADC register, offset: 0x0C */
    uint32_t          RESERVED1[1]; /*!< Reserverd block, offset: 0x10 */
    uint32_t          RESERVED2[1]; /*!< Reserverd block, offset: 0x014 */
    volatile uint32_t MFT0;         /*!< TRGMUX MFT0 register, offset: 0x18 */
    volatile uint32_t MFT1;         /*!< TRGMUX MFT1 register, offset: 0x1C */
    uint32_t          RESERVED3[2]; /*!< Reserverd block, offset: 0x20 */
    volatile uint32_t PDB;          /*!< TRGMUX PDB register, offset: 0x28 */
    uint32_t          RESERVED4[1]; /*!< Reserverd block, offset: 0x2C */
    volatile uint32_t LPIT;         /*!< TRGMUX LPIT register, offset: 0x30 */
    volatile uint32_t LPTMR;        /*!< TRGMUX LPTMR register, offset: 0x34 */
} TrgMuxRegType;

/*******************************************************************************
 * the globals
 ******************************************************************************/

/*******************************************************************************
 * the function prototypes
 ******************************************************************************/

/*! \brief Gets the TRGMUX DMAMUX0 register lock
 *
 * This function gets the current TRGMUX DMAMUX0 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX DMAMUX0 register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetDmaMux0Lk(const TrgMuxRegType *obj)
{
    return ((obj->DMAMUX0 & TRGMUX_DMAMUX0_LK_MASK) >> TRGMUX_DMAMUX0_LK_SHIFT);
}

/*! \brief Sets the TRGMUX DMAMUX0 register lock
 *
 * This function sets the TRGMUX DMAMUX0 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX DMAMUX0 register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetDmaMux0Lk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->DMAMUX0;

    tmp &= ~TRGMUX_DMAMUX0_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_DMAMUX0_LK_SHIFT)) & TRGMUX_DMAMUX0_LK_MASK);
    obj->DMAMUX0 = tmp;
}

/*! \brief Gets the Selected source for output 3 of this module
 *
 * This function gets the current Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetDmaMux0Sel3(const TrgMuxRegType *obj)
{
    return ((obj->DMAMUX0 & TRGMUX_DMAMUX0_SEL3_MASK) >> TRGMUX_DMAMUX0_SEL3_SHIFT);
}

/*! \brief Sets the Selected source for output 3 of this module
 *
 * This function sets the Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetDmaMux0Sel3(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->DMAMUX0;

    tmp &= ~TRGMUX_DMAMUX0_SEL3_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_DMAMUX0_SEL3_SHIFT)) & TRGMUX_DMAMUX0_SEL3_MASK);
    obj->DMAMUX0 = tmp;
}

/*! \brief Gets the Selected source for output 2 of this module
 *
 * This function gets the current Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetDmaMux0Sel2(const TrgMuxRegType *obj)
{
    return ((obj->DMAMUX0 & TRGMUX_DMAMUX0_SEL2_MASK) >> TRGMUX_DMAMUX0_SEL2_SHIFT);
}

/*! \brief Sets the Selected source for output 2 of this module
 *
 * This function sets the Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetDmaMux0Sel2(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->DMAMUX0;

    tmp &= ~TRGMUX_DMAMUX0_SEL2_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_DMAMUX0_SEL2_SHIFT)) & TRGMUX_DMAMUX0_SEL2_MASK);
    obj->DMAMUX0 = tmp;
}

/*! \brief Gets the Selected source for output 1 of this module
 *
 * This function gets the current Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetDmaMux0Sel1(const TrgMuxRegType *obj)
{
    return ((obj->DMAMUX0 & TRGMUX_DMAMUX0_SEL1_MASK) >> TRGMUX_DMAMUX0_SEL1_SHIFT);
}

/*! \brief Sets the Selected source for output 1 of this module
 *
 * This function sets the Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetDmaMux0Sel1(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->DMAMUX0;

    tmp &= ~TRGMUX_DMAMUX0_SEL1_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_DMAMUX0_SEL1_SHIFT)) & TRGMUX_DMAMUX0_SEL1_MASK);
    obj->DMAMUX0 = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetDmaMux0Sel0(const TrgMuxRegType *obj)
{
    return ((obj->DMAMUX0 & TRGMUX_DMAMUX0_SEL0_MASK) >> TRGMUX_DMAMUX0_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetDmaMux0Sel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->DMAMUX0;

    tmp &= ~TRGMUX_DMAMUX0_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_DMAMUX0_SEL0_SHIFT)) & TRGMUX_DMAMUX0_SEL0_MASK);
    obj->DMAMUX0 = tmp;
}

/*! \brief Gets the TRGMUX EXTOUT0 register lock
 *
 * This function gets the current TRGMUX EXTOUT0 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX EXTOUT0 register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetExtOut0Lk(const TrgMuxRegType *obj)
{
    return ((obj->EXTOUT0 & TRGMUX_EXTOUT0_LK_MASK) >> TRGMUX_EXTOUT0_LK_SHIFT);
}

/*! \brief Sets the TRGMUX EXTOUT0 register lock
 *
 * This function sets the TRGMUX EXTOUT0 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX EXTOUT0 register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetExtOut0Lk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->EXTOUT0;

    tmp &= ~TRGMUX_EXTOUT0_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_EXTOUT0_LK_SHIFT)) & TRGMUX_EXTOUT0_LK_MASK);
    obj->EXTOUT0 = tmp;
}

/*! \brief Gets the Selected source for output 3 of this module
 *
 * This function gets the current Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetExtOut0Sel3(const TrgMuxRegType *obj)
{
    return ((obj->EXTOUT0 & TRGMUX_EXTOUT0_SEL3_MASK) >> TRGMUX_EXTOUT0_SEL3_SHIFT);
}

/*! \brief Sets the Selected source for output 3 of this module
 *
 * This function sets the Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetExtOut0Sel3(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->EXTOUT0;

    tmp &= ~TRGMUX_EXTOUT0_SEL3_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_EXTOUT0_SEL3_SHIFT)) & TRGMUX_EXTOUT0_SEL3_MASK);
    obj->EXTOUT0 = tmp;
}

/*! \brief Gets the Selected source for output 2 of this module
 *
 * This function gets the current Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetExtOut0Sel2(const TrgMuxRegType *obj)
{
    return ((obj->EXTOUT0 & TRGMUX_EXTOUT0_SEL2_MASK) >> TRGMUX_EXTOUT0_SEL2_SHIFT);
}

/*! \brief Sets the Selected source for output 2 of this module
 *
 * This function sets the Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetExtOut0Sel2(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->EXTOUT0;

    tmp &= ~TRGMUX_EXTOUT0_SEL2_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_EXTOUT0_SEL2_SHIFT)) & TRGMUX_EXTOUT0_SEL2_MASK);
    obj->EXTOUT0 = tmp;
}

/*! \brief Gets the Selected source for output 1 of this module
 *
 * This function gets the current Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetExtOut0Sel1(const TrgMuxRegType *obj)
{
    return ((obj->EXTOUT0 & TRGMUX_EXTOUT0_SEL1_MASK) >> TRGMUX_EXTOUT0_SEL1_SHIFT);
}

/*! \brief Sets the Selected source for output 1 of this module
 *
 * This function sets the Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetExtOut0Sel1(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->EXTOUT0;

    tmp &= ~TRGMUX_EXTOUT0_SEL1_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_EXTOUT0_SEL1_SHIFT)) & TRGMUX_EXTOUT0_SEL1_MASK);
    obj->EXTOUT0 = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetExtOut0Sel0(const TrgMuxRegType *obj)
{
    return ((obj->EXTOUT0 & TRGMUX_EXTOUT0_SEL0_MASK) >> TRGMUX_EXTOUT0_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetExtOut0Sel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->EXTOUT0;

    tmp &= ~TRGMUX_EXTOUT0_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_EXTOUT0_SEL0_SHIFT)) & TRGMUX_EXTOUT0_SEL0_MASK);
    obj->EXTOUT0 = tmp;
}

/*! \brief Gets the TRGMUX ADC register lock
 *
 * This function gets the current TRGMUX ADC register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX ADC register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetAdcLk(const TrgMuxRegType *obj)
{
    return ((obj->ADC & TRGMUX_ADC_LK_MASK) >> TRGMUX_ADC_LK_SHIFT);
}

/*! \brief Sets the TRGMUX ADC register lock
 *
 * This function sets the TRGMUX ADC register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX ADC register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetAdcLk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->ADC;

    tmp &= ~TRGMUX_ADC_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_ADC_LK_SHIFT)) & TRGMUX_ADC_LK_MASK);
    obj->ADC = tmp;
}

/*! \brief Gets the Selected source for output 3 of this module
 *
 * This function gets the current Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetAdcSel3(const TrgMuxRegType *obj)
{
    return ((obj->ADC & TRGMUX_ADC_SEL3_MASK) >> TRGMUX_ADC_SEL3_SHIFT);
}

/*! \brief Sets the Selected source for output 3 of this module
 *
 * This function sets the Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetAdcSel3(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->ADC;

    tmp &= ~TRGMUX_ADC_SEL3_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_ADC_SEL3_SHIFT)) & TRGMUX_ADC_SEL3_MASK);
    obj->ADC = tmp;
}

/*! \brief Gets the Selected source for output 2 of this module
 *
 * This function gets the current Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetAdcSel2(const TrgMuxRegType *obj)
{
    return ((obj->ADC & TRGMUX_ADC_SEL2_MASK) >> TRGMUX_ADC_SEL2_SHIFT);
}

/*! \brief Sets the Selected source for output 2 of this module
 *
 * This function sets the Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetAdcSel2(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->ADC;

    tmp &= ~TRGMUX_ADC_SEL2_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_ADC_SEL2_SHIFT)) & TRGMUX_ADC_SEL2_MASK);
    obj->ADC = tmp;
}

/*! \brief Gets the Selected source for output 1 of this module
 *
 * This function gets the current Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetAdcSel1(const TrgMuxRegType *obj)
{
    return ((obj->ADC & TRGMUX_ADC_SEL1_MASK) >> TRGMUX_ADC_SEL1_SHIFT);
}

/*! \brief Sets the Selected source for output 1 of this module
 *
 * This function sets the Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetAdcSel1(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->ADC;

    tmp &= ~TRGMUX_ADC_SEL1_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_ADC_SEL1_SHIFT)) & TRGMUX_ADC_SEL1_MASK);
    obj->ADC = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetAdcSel0(const TrgMuxRegType *obj)
{
    return ((obj->ADC & TRGMUX_ADC_SEL0_MASK) >> TRGMUX_ADC_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetAdcSel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->ADC;

    tmp &= ~TRGMUX_ADC_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_ADC_SEL0_SHIFT)) & TRGMUX_ADC_SEL0_MASK);
    obj->ADC = tmp;
}

/*! \brief Gets the TRGMUX MFT0 register lock
 *
 * This function gets the current TRGMUX MFT0 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX MFT0 register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft0Lk(const TrgMuxRegType *obj)
{
    return ((obj->MFT0 & TRGMUX_MFT0_LK_MASK) >> TRGMUX_MFT0_LK_SHIFT);
}

/*! \brief Sets the TRGMUX MFT0 register lock
 *
 * This function sets the TRGMUX MFT0 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX MFT0 register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft0Lk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT0;

    tmp &= ~TRGMUX_MFT0_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT0_LK_SHIFT)) & TRGMUX_MFT0_LK_MASK);
    obj->MFT0 = tmp;
}

/*! \brief Gets the Selected source for output 3 of this module
 *
 * This function gets the current Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft0Sel3(const TrgMuxRegType *obj)
{
    return ((obj->MFT0 & TRGMUX_MFT0_SEL3_MASK) >> TRGMUX_MFT0_SEL3_SHIFT);
}

/*! \brief Sets the Selected source for output 3 of this module
 *
 * This function sets the Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft0Sel3(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT0;

    tmp &= ~TRGMUX_MFT0_SEL3_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT0_SEL3_SHIFT)) & TRGMUX_MFT0_SEL3_MASK);
    obj->MFT0 = tmp;
}

/*! \brief Gets the Selected source for output 2 of this module
 *
 * This function gets the current Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft0Sel2(const TrgMuxRegType *obj)
{
    return ((obj->MFT0 & TRGMUX_MFT0_SEL2_MASK) >> TRGMUX_MFT0_SEL2_SHIFT);
}

/*! \brief Sets the Selected source for output 2 of this module
 *
 * This function sets the Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft0Sel2(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT0;

    tmp &= ~TRGMUX_MFT0_SEL2_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT0_SEL2_SHIFT)) & TRGMUX_MFT0_SEL2_MASK);
    obj->MFT0 = tmp;
}

/*! \brief Gets the Selected source for output 1 of this module
 *
 * This function gets the current Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft0Sel1(const TrgMuxRegType *obj)
{
    return ((obj->MFT0 & TRGMUX_MFT0_SEL1_MASK) >> TRGMUX_MFT0_SEL1_SHIFT);
}

/*! \brief Sets the Selected source for output 1 of this module
 *
 * This function sets the Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft0Sel1(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT0;

    tmp &= ~TRGMUX_MFT0_SEL1_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT0_SEL1_SHIFT)) & TRGMUX_MFT0_SEL1_MASK);
    obj->MFT0 = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft0Sel0(const TrgMuxRegType *obj)
{
    return ((obj->MFT0 & TRGMUX_MFT0_SEL0_MASK) >> TRGMUX_MFT0_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft0Sel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT0;

    tmp &= ~TRGMUX_MFT0_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT0_SEL0_SHIFT)) & TRGMUX_MFT0_SEL0_MASK);
    obj->MFT0 = tmp;
}

/*! \brief Gets the TRGMUX MFT1 register lock
 *
 * This function gets the current TRGMUX MFT1 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX MFT1 register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft1Lk(const TrgMuxRegType *obj)
{
    return ((obj->MFT1 & TRGMUX_MFT1_LK_MASK) >> TRGMUX_MFT1_LK_SHIFT);
}

/*! \brief Sets the TRGMUX MFT1 register lock
 *
 * This function sets the TRGMUX MFT1 register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX MFT1 register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft1Lk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT1;

    tmp &= ~TRGMUX_MFT1_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT1_LK_SHIFT)) & TRGMUX_MFT1_LK_MASK);
    obj->MFT1 = tmp;
}

/*! \brief Gets the Selected source for output 3 of this module
 *
 * This function gets the current Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft1Sel3(const TrgMuxRegType *obj)
{
    return ((obj->MFT1 & TRGMUX_MFT1_SEL3_MASK) >> TRGMUX_MFT1_SEL3_SHIFT);
}

/*! \brief Sets the Selected source for output 3 of this module
 *
 * This function sets the Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft1Sel3(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT1;

    tmp &= ~TRGMUX_MFT1_SEL3_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT1_SEL3_SHIFT)) & TRGMUX_MFT1_SEL3_MASK);
    obj->MFT1 = tmp;
}

/*! \brief Gets the Selected source for output 2 of this module
 *
 * This function gets the current Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft1Sel2(const TrgMuxRegType *obj)
{
    return ((obj->MFT1 & TRGMUX_MFT1_SEL2_MASK) >> TRGMUX_MFT1_SEL2_SHIFT);
}

/*! \brief Sets the Selected source for output 2 of this module
 *
 * This function sets the Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft1Sel2(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT1;

    tmp &= ~TRGMUX_MFT1_SEL2_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT1_SEL2_SHIFT)) & TRGMUX_MFT1_SEL2_MASK);
    obj->MFT1 = tmp;
}

/*! \brief Gets the Selected source for output 1 of this module
 *
 * This function gets the current Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft1Sel1(const TrgMuxRegType *obj)
{
    return ((obj->MFT1 & TRGMUX_MFT1_SEL1_MASK) >> TRGMUX_MFT1_SEL1_SHIFT);
}

/*! \brief Sets the Selected source for output 1 of this module
 *
 * This function sets the Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft1Sel1(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT1;

    tmp &= ~TRGMUX_MFT1_SEL1_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT1_SEL1_SHIFT)) & TRGMUX_MFT1_SEL1_MASK);
    obj->MFT1 = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetMft1Sel0(const TrgMuxRegType *obj)
{
    return ((obj->MFT1 & TRGMUX_MFT1_SEL0_MASK) >> TRGMUX_MFT1_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetMft1Sel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->MFT1;

    tmp &= ~TRGMUX_MFT1_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_MFT1_SEL0_SHIFT)) & TRGMUX_MFT1_SEL0_MASK);
    obj->MFT1 = tmp;
}

/*! \brief Gets the TRGMUX PDB register lock
 *
 * This function gets the current TRGMUX PDB register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX PDB register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetPdbLk(const TrgMuxRegType *obj)
{
    return ((obj->PDB & TRGMUX_PDB_LK_MASK) >> TRGMUX_PDB_LK_SHIFT);
}

/*! \brief Sets the TRGMUX PDB register lock
 *
 * This function sets the TRGMUX PDB register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX PDB register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetPdbLk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->PDB;

    tmp &= ~TRGMUX_PDB_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_PDB_LK_SHIFT)) & TRGMUX_PDB_LK_MASK);
    obj->PDB = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetPdbSel0(const TrgMuxRegType *obj)
{
    return ((obj->PDB & TRGMUX_PDB_SEL0_MASK) >> TRGMUX_PDB_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetPdbSel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->PDB;

    tmp &= ~TRGMUX_PDB_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_PDB_SEL0_SHIFT)) & TRGMUX_PDB_SEL0_MASK);
    obj->PDB = tmp;
}

/*! \brief Gets the TRGMUX LPIT register lock
 *
 * This function gets the current TRGMUX LPIT register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX LPIT register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetLpitLk(const TrgMuxRegType *obj)
{
    return ((obj->LPIT & TRGMUX_LPIT_LK_MASK) >> TRGMUX_LPIT_LK_SHIFT);
}

/*! \brief Sets the TRGMUX LPIT register lock
 *
 * This function sets the TRGMUX LPIT register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX LPIT register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetLpitLk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->LPIT;

    tmp &= ~TRGMUX_LPIT_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_LPIT_LK_SHIFT)) & TRGMUX_LPIT_LK_MASK);
    obj->LPIT = tmp;
}

/*! \brief Gets the Selected source for output 3 of this module
 *
 * This function gets the current Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetLpitSel3(const TrgMuxRegType *obj)
{
    return ((obj->LPIT & TRGMUX_LPIT_SEL3_MASK) >> TRGMUX_LPIT_SEL3_SHIFT);
}

/*! \brief Sets the Selected source for output 3 of this module
 *
 * This function sets the Selected source for output 3 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 3 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetLpitSel3(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->LPIT;

    tmp &= ~TRGMUX_LPIT_SEL3_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_LPIT_SEL3_SHIFT)) & TRGMUX_LPIT_SEL3_MASK);
    obj->LPIT = tmp;
}

/*! \brief Gets the Selected source for output 2 of this module
 *
 * This function gets the current Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetLpitSel2(const TrgMuxRegType *obj)
{
    return ((obj->LPIT & TRGMUX_LPIT_SEL2_MASK) >> TRGMUX_LPIT_SEL2_SHIFT);
}

/*! \brief Sets the Selected source for output 2 of this module
 *
 * This function sets the Selected source for output 2 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 2 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetLpitSel2(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->LPIT;

    tmp &= ~TRGMUX_LPIT_SEL2_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_LPIT_SEL2_SHIFT)) & TRGMUX_LPIT_SEL2_MASK);
    obj->LPIT = tmp;
}

/*! \brief Gets the Selected source for output 1 of this module
 *
 * This function gets the current Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetLpitSel1(const TrgMuxRegType *obj)
{
    return ((obj->LPIT & TRGMUX_LPIT_SEL1_MASK) >> TRGMUX_LPIT_SEL1_SHIFT);
}

/*! \brief Sets the Selected source for output 1 of this module
 *
 * This function sets the Selected source for output 1 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 1 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetLpitSel1(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->LPIT;

    tmp &= ~TRGMUX_LPIT_SEL1_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_LPIT_SEL1_SHIFT)) & TRGMUX_LPIT_SEL1_MASK);
    obj->LPIT = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetLpitSel0(const TrgMuxRegType *obj)
{
    return ((obj->LPIT & TRGMUX_LPIT_SEL0_MASK) >> TRGMUX_LPIT_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetLpitSel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->LPIT;

    tmp &= ~TRGMUX_LPIT_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_LPIT_SEL0_SHIFT)) & TRGMUX_LPIT_SEL0_MASK);
    obj->LPIT = tmp;
}

/*! \brief Gets the TRGMUX LPTMR register lock
 *
 * This function gets the current TRGMUX LPTMR register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return TRGMUX LPTMR register lock
 *         - 0b : Register can be written.
 *         - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetLptmrLk(const TrgMuxRegType *obj)
{
    return ((obj->LPTMR & TRGMUX_LPTMR_LK_MASK) >> TRGMUX_LPTMR_LK_SHIFT);
}

/*! \brief Sets the TRGMUX LPTMR register lock
 *
 * This function sets the TRGMUX LPTMR register lock.
 * This bit shows whether the register can be written or not.
 * The LK bit can only be written once after any system reset.
 * Once LK is set, the SELx bits in this TRGMUX register cannot be changed until the next system reset clears LK.
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of TRGMUX LPTMR register lock
 *                    - 0b : Register can be written.
 *                    - 1b : Register cannot be written until the next system Reset.
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetLptmrLk(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->LPTMR;

    tmp &= ~TRGMUX_LPTMR_LK_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_LPTMR_LK_SHIFT)) & TRGMUX_LPTMR_LK_MASK);
    obj->LPTMR = tmp;
}

/*! \brief Gets the Selected source for output 0 of this module
 *
 * This function gets the current Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \return Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline uint8_t TrgMuxReg_GetLptmrSel0(const TrgMuxRegType *obj)
{
    return ((obj->LPTMR & TRGMUX_LPTMR_SEL0_MASK) >> TRGMUX_LPTMR_SEL0_SHIFT);
}

/*! \brief Sets the Selected source for output 0 of this module
 *
 * This function sets the Selected source for output 0 of this module.
 * Refer to user manual for signal encoding details
 *
 * \param[in] obj : pointer to TRGMUX register instance
 * \param[in] value : the value of Selected source for output 0 of this module
 */
__attribute__((always_inline)) static inline void TrgMuxReg_SetLptmrSel0(TrgMuxRegType *obj, uint8_t value)
{
    uint32_t tmp = obj->LPTMR;

    tmp &= ~TRGMUX_LPTMR_SEL0_MASK;
    tmp |= (((uint32_t)(((uint32_t)(value)) << TRGMUX_LPTMR_SEL0_SHIFT)) & TRGMUX_LPTMR_SEL0_MASK);
    obj->LPTMR = tmp;
}

#ifdef __cplusplus
}
#endif /* extern "C" */

#endif /* _TRGMUX_REG_H_ */
