/*
 * Component description for NVMCTRL
 *
 * Copyright (c) 2024 Microchip Technology Inc. and its subsidiaries.
 *
 * 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.
 *
 */

/*  file generated from device description file (ATDF) version 2023-03-17T09:48:34Z  */
#ifndef _PIC32CXSG41_NVMCTRL_COMPONENT_H_
#define _PIC32CXSG41_NVMCTRL_COMPONENT_H_

/* ************************************************************************** */
/*                    SOFTWARE API DEFINITION FOR NVMCTRL                     */
/* ************************************************************************** */

/* -------- NVMCTRL_CTRLA : (NVMCTRL Offset: 0x00) (R/W 16) Control A -------- */
#define NVMCTRL_CTRLA_RESETVALUE              _UINT16_(0x04)                                       /*  (NVMCTRL_CTRLA) Control A  Reset Value */

#define NVMCTRL_CTRLA_AUTOWS_Pos              _UINT16_(2)                                          /* (NVMCTRL_CTRLA) Auto Wait State Enable Position */
#define NVMCTRL_CTRLA_AUTOWS_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_AUTOWS_Pos)          /* (NVMCTRL_CTRLA) Auto Wait State Enable Mask */
#define NVMCTRL_CTRLA_AUTOWS(value)           (NVMCTRL_CTRLA_AUTOWS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AUTOWS_Pos)) /* Assignment of value for AUTOWS in the NVMCTRL_CTRLA register */
#define NVMCTRL_CTRLA_SUSPEN_Pos              _UINT16_(3)                                          /* (NVMCTRL_CTRLA) Suspend Enable Position */
#define NVMCTRL_CTRLA_SUSPEN_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_SUSPEN_Pos)          /* (NVMCTRL_CTRLA) Suspend Enable Mask */
#define NVMCTRL_CTRLA_SUSPEN(value)           (NVMCTRL_CTRLA_SUSPEN_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_SUSPEN_Pos)) /* Assignment of value for SUSPEN in the NVMCTRL_CTRLA register */
#define NVMCTRL_CTRLA_WMODE_Pos               _UINT16_(4)                                          /* (NVMCTRL_CTRLA) Write Mode Position */
#define NVMCTRL_CTRLA_WMODE_Msk               (_UINT16_(0x3) << NVMCTRL_CTRLA_WMODE_Pos)           /* (NVMCTRL_CTRLA) Write Mode Mask */
#define NVMCTRL_CTRLA_WMODE(value)            (NVMCTRL_CTRLA_WMODE_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_WMODE_Pos)) /* Assignment of value for WMODE in the NVMCTRL_CTRLA register */
#define   NVMCTRL_CTRLA_WMODE_MAN_Val         _UINT16_(0x0)                                        /* (NVMCTRL_CTRLA) Manual Write  */
#define   NVMCTRL_CTRLA_WMODE_ADW_Val         _UINT16_(0x1)                                        /* (NVMCTRL_CTRLA) Automatic Double Word Write  */
#define   NVMCTRL_CTRLA_WMODE_AQW_Val         _UINT16_(0x2)                                        /* (NVMCTRL_CTRLA) Automatic Quad Word  */
#define   NVMCTRL_CTRLA_WMODE_AP_Val          _UINT16_(0x3)                                        /* (NVMCTRL_CTRLA) Automatic Page Write  */
#define NVMCTRL_CTRLA_WMODE_MAN               (NVMCTRL_CTRLA_WMODE_MAN_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Manual Write Position */
#define NVMCTRL_CTRLA_WMODE_ADW               (NVMCTRL_CTRLA_WMODE_ADW_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Automatic Double Word Write Position */
#define NVMCTRL_CTRLA_WMODE_AQW               (NVMCTRL_CTRLA_WMODE_AQW_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Automatic Quad Word Position */
#define NVMCTRL_CTRLA_WMODE_AP                (NVMCTRL_CTRLA_WMODE_AP_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Automatic Page Write Position */
#define NVMCTRL_CTRLA_PRM_Pos                 _UINT16_(6)                                          /* (NVMCTRL_CTRLA) Power Reduction Mode during Sleep Position */
#define NVMCTRL_CTRLA_PRM_Msk                 (_UINT16_(0x3) << NVMCTRL_CTRLA_PRM_Pos)             /* (NVMCTRL_CTRLA) Power Reduction Mode during Sleep Mask */
#define NVMCTRL_CTRLA_PRM(value)              (NVMCTRL_CTRLA_PRM_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_PRM_Pos)) /* Assignment of value for PRM in the NVMCTRL_CTRLA register */
#define   NVMCTRL_CTRLA_PRM_SEMIAUTO_Val      _UINT16_(0x0)                                        /* (NVMCTRL_CTRLA) NVM block enters low-power mode when entering standby mode. NVM block enters low-power mode when SPRM command is issued. NVM block exits low-power mode upon first access.  */
#define   NVMCTRL_CTRLA_PRM_FULLAUTO_Val      _UINT16_(0x1)                                        /* (NVMCTRL_CTRLA) NVM block enters low-power mode when entering standby mode. NVM block enters low-power mode when SPRM command is issued. NVM block exits low-power mode when system is not in standby mode.  */
#define   NVMCTRL_CTRLA_PRM_MANUAL_Val        _UINT16_(0x3)                                        /* (NVMCTRL_CTRLA) NVM block does not enter low-power mode when entering standby mode. NVM block enters low-power mode when SPRM command is issued. NVM block exits low-power mode upon first access.  */
#define NVMCTRL_CTRLA_PRM_SEMIAUTO            (NVMCTRL_CTRLA_PRM_SEMIAUTO_Val << NVMCTRL_CTRLA_PRM_Pos) /* (NVMCTRL_CTRLA) NVM block enters low-power mode when entering standby mode. NVM block enters low-power mode when SPRM command is issued. NVM block exits low-power mode upon first access. Position */
#define NVMCTRL_CTRLA_PRM_FULLAUTO            (NVMCTRL_CTRLA_PRM_FULLAUTO_Val << NVMCTRL_CTRLA_PRM_Pos) /* (NVMCTRL_CTRLA) NVM block enters low-power mode when entering standby mode. NVM block enters low-power mode when SPRM command is issued. NVM block exits low-power mode when system is not in standby mode. Position */
#define NVMCTRL_CTRLA_PRM_MANUAL              (NVMCTRL_CTRLA_PRM_MANUAL_Val << NVMCTRL_CTRLA_PRM_Pos) /* (NVMCTRL_CTRLA) NVM block does not enter low-power mode when entering standby mode. NVM block enters low-power mode when SPRM command is issued. NVM block exits low-power mode upon first access. Position */
#define NVMCTRL_CTRLA_RWS_Pos                 _UINT16_(8)                                          /* (NVMCTRL_CTRLA) NVM Read Wait States Position */
#define NVMCTRL_CTRLA_RWS_Msk                 (_UINT16_(0xF) << NVMCTRL_CTRLA_RWS_Pos)             /* (NVMCTRL_CTRLA) NVM Read Wait States Mask */
#define NVMCTRL_CTRLA_RWS(value)              (NVMCTRL_CTRLA_RWS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_RWS_Pos)) /* Assignment of value for RWS in the NVMCTRL_CTRLA register */
#define NVMCTRL_CTRLA_AHBNS0_Pos              _UINT16_(12)                                         /* (NVMCTRL_CTRLA) Force AHB0 access to NONSEQ, burst transfers are continuously rearbitrated Position */
#define NVMCTRL_CTRLA_AHBNS0_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_AHBNS0_Pos)          /* (NVMCTRL_CTRLA) Force AHB0 access to NONSEQ, burst transfers are continuously rearbitrated Mask */
#define NVMCTRL_CTRLA_AHBNS0(value)           (NVMCTRL_CTRLA_AHBNS0_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AHBNS0_Pos)) /* Assignment of value for AHBNS0 in the NVMCTRL_CTRLA register */
#define NVMCTRL_CTRLA_AHBNS1_Pos              _UINT16_(13)                                         /* (NVMCTRL_CTRLA) Force AHB1 access to NONSEQ, burst transfers are continuously rearbitrated Position */
#define NVMCTRL_CTRLA_AHBNS1_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_AHBNS1_Pos)          /* (NVMCTRL_CTRLA) Force AHB1 access to NONSEQ, burst transfers are continuously rearbitrated Mask */
#define NVMCTRL_CTRLA_AHBNS1(value)           (NVMCTRL_CTRLA_AHBNS1_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AHBNS1_Pos)) /* Assignment of value for AHBNS1 in the NVMCTRL_CTRLA register */
#define NVMCTRL_CTRLA_CACHEDIS0_Pos           _UINT16_(14)                                         /* (NVMCTRL_CTRLA) AHB0 Cache Disable Position */
#define NVMCTRL_CTRLA_CACHEDIS0_Msk           (_UINT16_(0x1) << NVMCTRL_CTRLA_CACHEDIS0_Pos)       /* (NVMCTRL_CTRLA) AHB0 Cache Disable Mask */
#define NVMCTRL_CTRLA_CACHEDIS0(value)        (NVMCTRL_CTRLA_CACHEDIS0_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_CACHEDIS0_Pos)) /* Assignment of value for CACHEDIS0 in the NVMCTRL_CTRLA register */
#define NVMCTRL_CTRLA_CACHEDIS1_Pos           _UINT16_(15)                                         /* (NVMCTRL_CTRLA) AHB1 Cache Disable Position */
#define NVMCTRL_CTRLA_CACHEDIS1_Msk           (_UINT16_(0x1) << NVMCTRL_CTRLA_CACHEDIS1_Pos)       /* (NVMCTRL_CTRLA) AHB1 Cache Disable Mask */
#define NVMCTRL_CTRLA_CACHEDIS1(value)        (NVMCTRL_CTRLA_CACHEDIS1_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_CACHEDIS1_Pos)) /* Assignment of value for CACHEDIS1 in the NVMCTRL_CTRLA register */
#define NVMCTRL_CTRLA_Msk                     _UINT16_(0xFFFC)                                     /* (NVMCTRL_CTRLA) Register Mask  */

#define NVMCTRL_CTRLA_AHBNS_Pos               _UINT16_(12)                                         /* (NVMCTRL_CTRLA Position) Force AHBx access to NONSEQ, burst transfers are continuously rearbitrated */
#define NVMCTRL_CTRLA_AHBNS_Msk               (_UINT16_(0x3) << NVMCTRL_CTRLA_AHBNS_Pos)           /* (NVMCTRL_CTRLA Mask) AHBNS */
#define NVMCTRL_CTRLA_AHBNS(value)            (NVMCTRL_CTRLA_AHBNS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AHBNS_Pos)) 
#define NVMCTRL_CTRLA_CACHEDIS_Pos            _UINT16_(14)                                         /* (NVMCTRL_CTRLA Position) AHBx Cache Disable */
#define NVMCTRL_CTRLA_CACHEDIS_Msk            (_UINT16_(0x3) << NVMCTRL_CTRLA_CACHEDIS_Pos)        /* (NVMCTRL_CTRLA Mask) CACHEDIS */
#define NVMCTRL_CTRLA_CACHEDIS(value)         (NVMCTRL_CTRLA_CACHEDIS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_CACHEDIS_Pos)) 

/* -------- NVMCTRL_CTRLB : (NVMCTRL Offset: 0x04) ( /W 16) Control B -------- */
#define NVMCTRL_CTRLB_RESETVALUE              _UINT16_(0x00)                                       /*  (NVMCTRL_CTRLB) Control B  Reset Value */

#define NVMCTRL_CTRLB_CMD_Pos                 _UINT16_(0)                                          /* (NVMCTRL_CTRLB) Command Position */
#define NVMCTRL_CTRLB_CMD_Msk                 (_UINT16_(0x7F) << NVMCTRL_CTRLB_CMD_Pos)            /* (NVMCTRL_CTRLB) Command Mask */
#define NVMCTRL_CTRLB_CMD(value)              (NVMCTRL_CTRLB_CMD_Msk & (_UINT16_(value) << NVMCTRL_CTRLB_CMD_Pos)) /* Assignment of value for CMD in the NVMCTRL_CTRLB register */
#define   NVMCTRL_CTRLB_CMD_EP_Val            _UINT16_(0x0)                                        /* (NVMCTRL_CTRLB) Erase Page - Only supported in the USER and AUX pages.  */
#define   NVMCTRL_CTRLB_CMD_EB_Val            _UINT16_(0x1)                                        /* (NVMCTRL_CTRLB) Erase Block - Erases the block addressed by the ADDR register, not supported in the user page  */
#define   NVMCTRL_CTRLB_CMD_WP_Val            _UINT16_(0x3)                                        /* (NVMCTRL_CTRLB) Write Page - Writes the contents of the page buffer to the page addressed by the ADDR register, not supported in the user page  */
#define   NVMCTRL_CTRLB_CMD_WQW_Val           _UINT16_(0x4)                                        /* (NVMCTRL_CTRLB) Write Quad Word - Writes a 128-bit word at the location addressed by the ADDR register.  */
#define   NVMCTRL_CTRLB_CMD_SWRST_Val         _UINT16_(0x10)                                       /* (NVMCTRL_CTRLB) Software Reset - Power-Cycle the NVM memory and replay the device automatic calibration procedure and resets the module configuration registers  */
#define   NVMCTRL_CTRLB_CMD_LR_Val            _UINT16_(0x11)                                       /* (NVMCTRL_CTRLB) Lock Region - Locks the region containing the address location in the ADDR register.  */
#define   NVMCTRL_CTRLB_CMD_UR_Val            _UINT16_(0x12)                                       /* (NVMCTRL_CTRLB) Unlock Region - Unlocks the region containing the address location in the ADDR register.  */
#define   NVMCTRL_CTRLB_CMD_SPRM_Val          _UINT16_(0x13)                                       /* (NVMCTRL_CTRLB) Sets the power reduction mode.  */
#define   NVMCTRL_CTRLB_CMD_CPRM_Val          _UINT16_(0x14)                                       /* (NVMCTRL_CTRLB) Clears the power reduction mode.  */
#define   NVMCTRL_CTRLB_CMD_PBC_Val           _UINT16_(0x15)                                       /* (NVMCTRL_CTRLB) Page Buffer Clear - Clears the page buffer.  */
#define   NVMCTRL_CTRLB_CMD_SSB_Val           _UINT16_(0x16)                                       /* (NVMCTRL_CTRLB) Set Security Bit  */
#define   NVMCTRL_CTRLB_CMD_BKSWRST_Val       _UINT16_(0x17)                                       /* (NVMCTRL_CTRLB) Bank swap and system reset, if SMEE is used also reallocate SMEE data into the opposite BANK  */
#define   NVMCTRL_CTRLB_CMD_CELCK_Val         _UINT16_(0x18)                                       /* (NVMCTRL_CTRLB) Chip Erase Lock - DSU.CE command is not available  */
#define   NVMCTRL_CTRLB_CMD_CEULCK_Val        _UINT16_(0x19)                                       /* (NVMCTRL_CTRLB) Chip Erase Unlock - DSU.CE command is available  */
#define   NVMCTRL_CTRLB_CMD_SBPDIS_Val        _UINT16_(0x1A)                                       /* (NVMCTRL_CTRLB) Sets STATUS.BPDIS, Boot loader protection is discarded until CBPDIS is issued or next start-up sequence  */
#define   NVMCTRL_CTRLB_CMD_CBPDIS_Val        _UINT16_(0x1B)                                       /* (NVMCTRL_CTRLB) Clears STATUS.BPDIS, Boot loader protection is not discarded  */
#define   NVMCTRL_CTRLB_CMD_SCEHL_Val         _UINT16_(0x1C)                                       /* (NVMCTRL_CTRLB) Set Chip Erase Hard Lock - DSU.CTRL.CE command is not available  */
#define   NVMCTRL_CTRLB_CMD_SBPHL_Val         _UINT16_(0x1D)                                       /* (NVMCTRL_CTRLB) Set Boot Protect Hard Lock  */
#define   NVMCTRL_CTRLB_CMD_ASEES0_Val        _UINT16_(0x30)                                       /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 0, deactivate Sector 1  */
#define   NVMCTRL_CTRLB_CMD_ASEES1_Val        _UINT16_(0x31)                                       /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 1, deactivate Sector 0  */
#define   NVMCTRL_CTRLB_CMD_SEERALOC_Val      _UINT16_(0x32)                                       /* (NVMCTRL_CTRLB) Starts SmartEEPROM sector reallocation algorithm  */
#define   NVMCTRL_CTRLB_CMD_LSEE_Val          _UINT16_(0x34)                                       /* (NVMCTRL_CTRLB) Lock access to SmartEEPROM data from any mean  */
#define   NVMCTRL_CTRLB_CMD_USEE_Val          _UINT16_(0x35)                                       /* (NVMCTRL_CTRLB) Unlock access to SmartEEPROM data  */
#define   NVMCTRL_CTRLB_CMD_LSEER_Val         _UINT16_(0x36)                                       /* (NVMCTRL_CTRLB) Lock access to the SmartEEPROM Register Address Space (above 64KB)  */
#define   NVMCTRL_CTRLB_CMD_USEER_Val         _UINT16_(0x37)                                       /* (NVMCTRL_CTRLB) Unlock access to the SmartEEPROM Register Address Space (above 64KB)  */
#define NVMCTRL_CTRLB_CMD_EP                  (NVMCTRL_CTRLB_CMD_EP_Val << NVMCTRL_CTRLB_CMD_Pos)  /* (NVMCTRL_CTRLB) Erase Page - Only supported in the USER and AUX pages. Position */
#define NVMCTRL_CTRLB_CMD_EB                  (NVMCTRL_CTRLB_CMD_EB_Val << NVMCTRL_CTRLB_CMD_Pos)  /* (NVMCTRL_CTRLB) Erase Block - Erases the block addressed by the ADDR register, not supported in the user page Position */
#define NVMCTRL_CTRLB_CMD_WP                  (NVMCTRL_CTRLB_CMD_WP_Val << NVMCTRL_CTRLB_CMD_Pos)  /* (NVMCTRL_CTRLB) Write Page - Writes the contents of the page buffer to the page addressed by the ADDR register, not supported in the user page Position */
#define NVMCTRL_CTRLB_CMD_WQW                 (NVMCTRL_CTRLB_CMD_WQW_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Write Quad Word - Writes a 128-bit word at the location addressed by the ADDR register. Position */
#define NVMCTRL_CTRLB_CMD_SWRST               (NVMCTRL_CTRLB_CMD_SWRST_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Software Reset - Power-Cycle the NVM memory and replay the device automatic calibration procedure and resets the module configuration registers Position */
#define NVMCTRL_CTRLB_CMD_LR                  (NVMCTRL_CTRLB_CMD_LR_Val << NVMCTRL_CTRLB_CMD_Pos)  /* (NVMCTRL_CTRLB) Lock Region - Locks the region containing the address location in the ADDR register. Position */
#define NVMCTRL_CTRLB_CMD_UR                  (NVMCTRL_CTRLB_CMD_UR_Val << NVMCTRL_CTRLB_CMD_Pos)  /* (NVMCTRL_CTRLB) Unlock Region - Unlocks the region containing the address location in the ADDR register. Position */
#define NVMCTRL_CTRLB_CMD_SPRM                (NVMCTRL_CTRLB_CMD_SPRM_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Sets the power reduction mode. Position */
#define NVMCTRL_CTRLB_CMD_CPRM                (NVMCTRL_CTRLB_CMD_CPRM_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Clears the power reduction mode. Position */
#define NVMCTRL_CTRLB_CMD_PBC                 (NVMCTRL_CTRLB_CMD_PBC_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Page Buffer Clear - Clears the page buffer. Position */
#define NVMCTRL_CTRLB_CMD_SSB                 (NVMCTRL_CTRLB_CMD_SSB_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Set Security Bit Position */
#define NVMCTRL_CTRLB_CMD_BKSWRST             (NVMCTRL_CTRLB_CMD_BKSWRST_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Bank swap and system reset, if SMEE is used also reallocate SMEE data into the opposite BANK Position */
#define NVMCTRL_CTRLB_CMD_CELCK               (NVMCTRL_CTRLB_CMD_CELCK_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Chip Erase Lock - DSU.CE command is not available Position */
#define NVMCTRL_CTRLB_CMD_CEULCK              (NVMCTRL_CTRLB_CMD_CEULCK_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Chip Erase Unlock - DSU.CE command is available Position */
#define NVMCTRL_CTRLB_CMD_SBPDIS              (NVMCTRL_CTRLB_CMD_SBPDIS_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Sets STATUS.BPDIS, Boot loader protection is discarded until CBPDIS is issued or next start-up sequence Position */
#define NVMCTRL_CTRLB_CMD_CBPDIS              (NVMCTRL_CTRLB_CMD_CBPDIS_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Clears STATUS.BPDIS, Boot loader protection is not discarded Position */
#define NVMCTRL_CTRLB_CMD_SCEHL               (NVMCTRL_CTRLB_CMD_SCEHL_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Set Chip Erase Hard Lock - DSU.CTRL.CE command is not available Position */
#define NVMCTRL_CTRLB_CMD_SBPHL               (NVMCTRL_CTRLB_CMD_SBPHL_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Set Boot Protect Hard Lock Position */
#define NVMCTRL_CTRLB_CMD_ASEES0              (NVMCTRL_CTRLB_CMD_ASEES0_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 0, deactivate Sector 1 Position */
#define NVMCTRL_CTRLB_CMD_ASEES1              (NVMCTRL_CTRLB_CMD_ASEES1_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 1, deactivate Sector 0 Position */
#define NVMCTRL_CTRLB_CMD_SEERALOC            (NVMCTRL_CTRLB_CMD_SEERALOC_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Starts SmartEEPROM sector reallocation algorithm Position */
#define NVMCTRL_CTRLB_CMD_LSEE                (NVMCTRL_CTRLB_CMD_LSEE_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Lock access to SmartEEPROM data from any mean Position */
#define NVMCTRL_CTRLB_CMD_USEE                (NVMCTRL_CTRLB_CMD_USEE_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Unlock access to SmartEEPROM data Position */
#define NVMCTRL_CTRLB_CMD_LSEER               (NVMCTRL_CTRLB_CMD_LSEER_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Lock access to the SmartEEPROM Register Address Space (above 64KB) Position */
#define NVMCTRL_CTRLB_CMD_USEER               (NVMCTRL_CTRLB_CMD_USEER_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Unlock access to the SmartEEPROM Register Address Space (above 64KB) Position */
#define NVMCTRL_CTRLB_CMDEX_Pos               _UINT16_(8)                                          /* (NVMCTRL_CTRLB) Command Execution Position */
#define NVMCTRL_CTRLB_CMDEX_Msk               (_UINT16_(0xFF) << NVMCTRL_CTRLB_CMDEX_Pos)          /* (NVMCTRL_CTRLB) Command Execution Mask */
#define NVMCTRL_CTRLB_CMDEX(value)            (NVMCTRL_CTRLB_CMDEX_Msk & (_UINT16_(value) << NVMCTRL_CTRLB_CMDEX_Pos)) /* Assignment of value for CMDEX in the NVMCTRL_CTRLB register */
#define   NVMCTRL_CTRLB_CMDEX_KEY_Val         _UINT16_(0xA5)                                       /* (NVMCTRL_CTRLB) Execution Key  */
#define NVMCTRL_CTRLB_CMDEX_KEY               (NVMCTRL_CTRLB_CMDEX_KEY_Val << NVMCTRL_CTRLB_CMDEX_Pos) /* (NVMCTRL_CTRLB) Execution Key Position */
#define NVMCTRL_CTRLB_Msk                     _UINT16_(0xFF7F)                                     /* (NVMCTRL_CTRLB) Register Mask  */


/* -------- NVMCTRL_PARAM : (NVMCTRL Offset: 0x08) ( R/ 32) NVM Parameter -------- */
#define NVMCTRL_PARAM_RESETVALUE              _UINT32_(0x60000)                                    /*  (NVMCTRL_PARAM) NVM Parameter  Reset Value */

#define NVMCTRL_PARAM_NVMP_Pos                _UINT32_(0)                                          /* (NVMCTRL_PARAM) NVM Pages Position */
#define NVMCTRL_PARAM_NVMP_Msk                (_UINT32_(0xFFFF) << NVMCTRL_PARAM_NVMP_Pos)         /* (NVMCTRL_PARAM) NVM Pages Mask */
#define NVMCTRL_PARAM_NVMP(value)             (NVMCTRL_PARAM_NVMP_Msk & (_UINT32_(value) << NVMCTRL_PARAM_NVMP_Pos)) /* Assignment of value for NVMP in the NVMCTRL_PARAM register */
#define NVMCTRL_PARAM_PSZ_Pos                 _UINT32_(16)                                         /* (NVMCTRL_PARAM) Page Size Position */
#define NVMCTRL_PARAM_PSZ_Msk                 (_UINT32_(0x7) << NVMCTRL_PARAM_PSZ_Pos)             /* (NVMCTRL_PARAM) Page Size Mask */
#define NVMCTRL_PARAM_PSZ(value)              (NVMCTRL_PARAM_PSZ_Msk & (_UINT32_(value) << NVMCTRL_PARAM_PSZ_Pos)) /* Assignment of value for PSZ in the NVMCTRL_PARAM register */
#define   NVMCTRL_PARAM_PSZ_8_Val             _UINT32_(0x0)                                        /* (NVMCTRL_PARAM) 8 bytes  */
#define   NVMCTRL_PARAM_PSZ_16_Val            _UINT32_(0x1)                                        /* (NVMCTRL_PARAM) 16 bytes  */
#define   NVMCTRL_PARAM_PSZ_32_Val            _UINT32_(0x2)                                        /* (NVMCTRL_PARAM) 32 bytes  */
#define   NVMCTRL_PARAM_PSZ_64_Val            _UINT32_(0x3)                                        /* (NVMCTRL_PARAM) 64 bytes  */
#define   NVMCTRL_PARAM_PSZ_128_Val           _UINT32_(0x4)                                        /* (NVMCTRL_PARAM) 128 bytes  */
#define   NVMCTRL_PARAM_PSZ_256_Val           _UINT32_(0x5)                                        /* (NVMCTRL_PARAM) 256 bytes  */
#define   NVMCTRL_PARAM_PSZ_512_Val           _UINT32_(0x6)                                        /* (NVMCTRL_PARAM) 512 bytes  */
#define   NVMCTRL_PARAM_PSZ_1024_Val          _UINT32_(0x7)                                        /* (NVMCTRL_PARAM) 1024 bytes  */
#define NVMCTRL_PARAM_PSZ_8                   (NVMCTRL_PARAM_PSZ_8_Val << NVMCTRL_PARAM_PSZ_Pos)   /* (NVMCTRL_PARAM) 8 bytes Position */
#define NVMCTRL_PARAM_PSZ_16                  (NVMCTRL_PARAM_PSZ_16_Val << NVMCTRL_PARAM_PSZ_Pos)  /* (NVMCTRL_PARAM) 16 bytes Position */
#define NVMCTRL_PARAM_PSZ_32                  (NVMCTRL_PARAM_PSZ_32_Val << NVMCTRL_PARAM_PSZ_Pos)  /* (NVMCTRL_PARAM) 32 bytes Position */
#define NVMCTRL_PARAM_PSZ_64                  (NVMCTRL_PARAM_PSZ_64_Val << NVMCTRL_PARAM_PSZ_Pos)  /* (NVMCTRL_PARAM) 64 bytes Position */
#define NVMCTRL_PARAM_PSZ_128                 (NVMCTRL_PARAM_PSZ_128_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 128 bytes Position */
#define NVMCTRL_PARAM_PSZ_256                 (NVMCTRL_PARAM_PSZ_256_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 256 bytes Position */
#define NVMCTRL_PARAM_PSZ_512                 (NVMCTRL_PARAM_PSZ_512_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 512 bytes Position */
#define NVMCTRL_PARAM_PSZ_1024                (NVMCTRL_PARAM_PSZ_1024_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 1024 bytes Position */
#define NVMCTRL_PARAM_SEE_Pos                 _UINT32_(31)                                         /* (NVMCTRL_PARAM) SmartEEPROM Supported Position */
#define NVMCTRL_PARAM_SEE_Msk                 (_UINT32_(0x1) << NVMCTRL_PARAM_SEE_Pos)             /* (NVMCTRL_PARAM) SmartEEPROM Supported Mask */
#define NVMCTRL_PARAM_SEE(value)              (NVMCTRL_PARAM_SEE_Msk & (_UINT32_(value) << NVMCTRL_PARAM_SEE_Pos)) /* Assignment of value for SEE in the NVMCTRL_PARAM register */
#define   NVMCTRL_PARAM_SEE_SMARTEEPROM_Val   _UINT32_(0x1)                                        /* (NVMCTRL_PARAM) SmartEEPROM is supported  */
#define   NVMCTRL_PARAM_SEE_NOSMARTEEPROM_Val _UINT32_(0x0)                                        /* (NVMCTRL_PARAM) No SmartEEPROM support  */
#define NVMCTRL_PARAM_SEE_SMARTEEPROM         (NVMCTRL_PARAM_SEE_SMARTEEPROM_Val << NVMCTRL_PARAM_SEE_Pos) /* (NVMCTRL_PARAM) SmartEEPROM is supported Position */
#define NVMCTRL_PARAM_SEE_NOSMARTEEPROM       (NVMCTRL_PARAM_SEE_NOSMARTEEPROM_Val << NVMCTRL_PARAM_SEE_Pos) /* (NVMCTRL_PARAM) No SmartEEPROM support Position */
#define NVMCTRL_PARAM_Msk                     _UINT32_(0x8007FFFF)                                 /* (NVMCTRL_PARAM) Register Mask  */


/* -------- NVMCTRL_INTENCLR : (NVMCTRL Offset: 0x0C) (R/W 16) Interrupt Enable Clear -------- */
#define NVMCTRL_INTENCLR_RESETVALUE           _UINT16_(0x00)                                       /*  (NVMCTRL_INTENCLR) Interrupt Enable Clear  Reset Value */

#define NVMCTRL_INTENCLR_DONE_Pos             _UINT16_(0)                                          /* (NVMCTRL_INTENCLR) Command Done Interrupt Clear Position */
#define NVMCTRL_INTENCLR_DONE_Msk             (_UINT16_(0x1) << NVMCTRL_INTENCLR_DONE_Pos)         /* (NVMCTRL_INTENCLR) Command Done Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_DONE(value)          (NVMCTRL_INTENCLR_DONE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_DONE_Pos)) /* Assignment of value for DONE in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_ADDRE_Pos            _UINT16_(1)                                          /* (NVMCTRL_INTENCLR) Address Error Position */
#define NVMCTRL_INTENCLR_ADDRE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_ADDRE_Pos)        /* (NVMCTRL_INTENCLR) Address Error Mask */
#define NVMCTRL_INTENCLR_ADDRE(value)         (NVMCTRL_INTENCLR_ADDRE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_ADDRE_Pos)) /* Assignment of value for ADDRE in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_PROGE_Pos            _UINT16_(2)                                          /* (NVMCTRL_INTENCLR) Programming Error Interrupt Clear Position */
#define NVMCTRL_INTENCLR_PROGE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_PROGE_Pos)        /* (NVMCTRL_INTENCLR) Programming Error Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_PROGE(value)         (NVMCTRL_INTENCLR_PROGE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_PROGE_Pos)) /* Assignment of value for PROGE in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_LOCKE_Pos            _UINT16_(3)                                          /* (NVMCTRL_INTENCLR) Lock Error Interrupt Clear Position */
#define NVMCTRL_INTENCLR_LOCKE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_LOCKE_Pos)        /* (NVMCTRL_INTENCLR) Lock Error Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_LOCKE(value)         (NVMCTRL_INTENCLR_LOCKE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_LOCKE_Pos)) /* Assignment of value for LOCKE in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_ECCSE_Pos            _UINT16_(4)                                          /* (NVMCTRL_INTENCLR) ECC Single Error Interrupt Clear Position */
#define NVMCTRL_INTENCLR_ECCSE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_ECCSE_Pos)        /* (NVMCTRL_INTENCLR) ECC Single Error Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_ECCSE(value)         (NVMCTRL_INTENCLR_ECCSE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_ECCSE_Pos)) /* Assignment of value for ECCSE in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_ECCDE_Pos            _UINT16_(5)                                          /* (NVMCTRL_INTENCLR) ECC Dual Error Interrupt Clear Position */
#define NVMCTRL_INTENCLR_ECCDE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_ECCDE_Pos)        /* (NVMCTRL_INTENCLR) ECC Dual Error Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_ECCDE(value)         (NVMCTRL_INTENCLR_ECCDE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_ECCDE_Pos)) /* Assignment of value for ECCDE in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_NVME_Pos             _UINT16_(6)                                          /* (NVMCTRL_INTENCLR) NVM Error Interrupt Clear Position */
#define NVMCTRL_INTENCLR_NVME_Msk             (_UINT16_(0x1) << NVMCTRL_INTENCLR_NVME_Pos)         /* (NVMCTRL_INTENCLR) NVM Error Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_NVME(value)          (NVMCTRL_INTENCLR_NVME_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_NVME_Pos)) /* Assignment of value for NVME in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_SUSP_Pos             _UINT16_(7)                                          /* (NVMCTRL_INTENCLR) Suspended Write Or Erase Interrupt Clear Position */
#define NVMCTRL_INTENCLR_SUSP_Msk             (_UINT16_(0x1) << NVMCTRL_INTENCLR_SUSP_Pos)         /* (NVMCTRL_INTENCLR) Suspended Write Or Erase Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_SUSP(value)          (NVMCTRL_INTENCLR_SUSP_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SUSP_Pos)) /* Assignment of value for SUSP in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_SEESFULL_Pos         _UINT16_(8)                                          /* (NVMCTRL_INTENCLR) Active SEES Full Interrupt Clear Position */
#define NVMCTRL_INTENCLR_SEESFULL_Msk         (_UINT16_(0x1) << NVMCTRL_INTENCLR_SEESFULL_Pos)     /* (NVMCTRL_INTENCLR) Active SEES Full Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_SEESFULL(value)      (NVMCTRL_INTENCLR_SEESFULL_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SEESFULL_Pos)) /* Assignment of value for SEESFULL in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_SEESOVF_Pos          _UINT16_(9)                                          /* (NVMCTRL_INTENCLR) Active SEES Overflow Interrupt Clear Position */
#define NVMCTRL_INTENCLR_SEESOVF_Msk          (_UINT16_(0x1) << NVMCTRL_INTENCLR_SEESOVF_Pos)      /* (NVMCTRL_INTENCLR) Active SEES Overflow Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_SEESOVF(value)       (NVMCTRL_INTENCLR_SEESOVF_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SEESOVF_Pos)) /* Assignment of value for SEESOVF in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_SEEWRC_Pos           _UINT16_(10)                                         /* (NVMCTRL_INTENCLR) SEE Write Completed Interrupt Clear Position */
#define NVMCTRL_INTENCLR_SEEWRC_Msk           (_UINT16_(0x1) << NVMCTRL_INTENCLR_SEEWRC_Pos)       /* (NVMCTRL_INTENCLR) SEE Write Completed Interrupt Clear Mask */
#define NVMCTRL_INTENCLR_SEEWRC(value)        (NVMCTRL_INTENCLR_SEEWRC_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SEEWRC_Pos)) /* Assignment of value for SEEWRC in the NVMCTRL_INTENCLR register */
#define NVMCTRL_INTENCLR_Msk                  _UINT16_(0x07FF)                                     /* (NVMCTRL_INTENCLR) Register Mask  */


/* -------- NVMCTRL_INTENSET : (NVMCTRL Offset: 0x0E) (R/W 16) Interrupt Enable Set -------- */
#define NVMCTRL_INTENSET_RESETVALUE           _UINT16_(0x00)                                       /*  (NVMCTRL_INTENSET) Interrupt Enable Set  Reset Value */

#define NVMCTRL_INTENSET_DONE_Pos             _UINT16_(0)                                          /* (NVMCTRL_INTENSET) Command Done Interrupt Enable Position */
#define NVMCTRL_INTENSET_DONE_Msk             (_UINT16_(0x1) << NVMCTRL_INTENSET_DONE_Pos)         /* (NVMCTRL_INTENSET) Command Done Interrupt Enable Mask */
#define NVMCTRL_INTENSET_DONE(value)          (NVMCTRL_INTENSET_DONE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_DONE_Pos)) /* Assignment of value for DONE in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_ADDRE_Pos            _UINT16_(1)                                          /* (NVMCTRL_INTENSET) Address Error Interrupt Enable Position */
#define NVMCTRL_INTENSET_ADDRE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_ADDRE_Pos)        /* (NVMCTRL_INTENSET) Address Error Interrupt Enable Mask */
#define NVMCTRL_INTENSET_ADDRE(value)         (NVMCTRL_INTENSET_ADDRE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_ADDRE_Pos)) /* Assignment of value for ADDRE in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_PROGE_Pos            _UINT16_(2)                                          /* (NVMCTRL_INTENSET) Programming Error Interrupt Enable Position */
#define NVMCTRL_INTENSET_PROGE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_PROGE_Pos)        /* (NVMCTRL_INTENSET) Programming Error Interrupt Enable Mask */
#define NVMCTRL_INTENSET_PROGE(value)         (NVMCTRL_INTENSET_PROGE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_PROGE_Pos)) /* Assignment of value for PROGE in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_LOCKE_Pos            _UINT16_(3)                                          /* (NVMCTRL_INTENSET) Lock Error Interrupt Enable Position */
#define NVMCTRL_INTENSET_LOCKE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_LOCKE_Pos)        /* (NVMCTRL_INTENSET) Lock Error Interrupt Enable Mask */
#define NVMCTRL_INTENSET_LOCKE(value)         (NVMCTRL_INTENSET_LOCKE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_LOCKE_Pos)) /* Assignment of value for LOCKE in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_ECCSE_Pos            _UINT16_(4)                                          /* (NVMCTRL_INTENSET) ECC Single Error Interrupt Enable Position */
#define NVMCTRL_INTENSET_ECCSE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_ECCSE_Pos)        /* (NVMCTRL_INTENSET) ECC Single Error Interrupt Enable Mask */
#define NVMCTRL_INTENSET_ECCSE(value)         (NVMCTRL_INTENSET_ECCSE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_ECCSE_Pos)) /* Assignment of value for ECCSE in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_ECCDE_Pos            _UINT16_(5)                                          /* (NVMCTRL_INTENSET) ECC Dual Error Interrupt Enable Position */
#define NVMCTRL_INTENSET_ECCDE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_ECCDE_Pos)        /* (NVMCTRL_INTENSET) ECC Dual Error Interrupt Enable Mask */
#define NVMCTRL_INTENSET_ECCDE(value)         (NVMCTRL_INTENSET_ECCDE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_ECCDE_Pos)) /* Assignment of value for ECCDE in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_NVME_Pos             _UINT16_(6)                                          /* (NVMCTRL_INTENSET) NVM Error Interrupt Enable Position */
#define NVMCTRL_INTENSET_NVME_Msk             (_UINT16_(0x1) << NVMCTRL_INTENSET_NVME_Pos)         /* (NVMCTRL_INTENSET) NVM Error Interrupt Enable Mask */
#define NVMCTRL_INTENSET_NVME(value)          (NVMCTRL_INTENSET_NVME_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_NVME_Pos)) /* Assignment of value for NVME in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_SUSP_Pos             _UINT16_(7)                                          /* (NVMCTRL_INTENSET) Suspended Write Or Erase  Interrupt Enable Position */
#define NVMCTRL_INTENSET_SUSP_Msk             (_UINT16_(0x1) << NVMCTRL_INTENSET_SUSP_Pos)         /* (NVMCTRL_INTENSET) Suspended Write Or Erase  Interrupt Enable Mask */
#define NVMCTRL_INTENSET_SUSP(value)          (NVMCTRL_INTENSET_SUSP_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SUSP_Pos)) /* Assignment of value for SUSP in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_SEESFULL_Pos         _UINT16_(8)                                          /* (NVMCTRL_INTENSET) Active SEES Full Interrupt Enable Position */
#define NVMCTRL_INTENSET_SEESFULL_Msk         (_UINT16_(0x1) << NVMCTRL_INTENSET_SEESFULL_Pos)     /* (NVMCTRL_INTENSET) Active SEES Full Interrupt Enable Mask */
#define NVMCTRL_INTENSET_SEESFULL(value)      (NVMCTRL_INTENSET_SEESFULL_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SEESFULL_Pos)) /* Assignment of value for SEESFULL in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_SEESOVF_Pos          _UINT16_(9)                                          /* (NVMCTRL_INTENSET) Active SEES Overflow Interrupt Enable Position */
#define NVMCTRL_INTENSET_SEESOVF_Msk          (_UINT16_(0x1) << NVMCTRL_INTENSET_SEESOVF_Pos)      /* (NVMCTRL_INTENSET) Active SEES Overflow Interrupt Enable Mask */
#define NVMCTRL_INTENSET_SEESOVF(value)       (NVMCTRL_INTENSET_SEESOVF_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SEESOVF_Pos)) /* Assignment of value for SEESOVF in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_SEEWRC_Pos           _UINT16_(10)                                         /* (NVMCTRL_INTENSET) SEE Write Completed Interrupt Enable Position */
#define NVMCTRL_INTENSET_SEEWRC_Msk           (_UINT16_(0x1) << NVMCTRL_INTENSET_SEEWRC_Pos)       /* (NVMCTRL_INTENSET) SEE Write Completed Interrupt Enable Mask */
#define NVMCTRL_INTENSET_SEEWRC(value)        (NVMCTRL_INTENSET_SEEWRC_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SEEWRC_Pos)) /* Assignment of value for SEEWRC in the NVMCTRL_INTENSET register */
#define NVMCTRL_INTENSET_Msk                  _UINT16_(0x07FF)                                     /* (NVMCTRL_INTENSET) Register Mask  */


/* -------- NVMCTRL_INTFLAG : (NVMCTRL Offset: 0x10) (R/W 16) Interrupt Flag Status and Clear -------- */
#define NVMCTRL_INTFLAG_RESETVALUE            _UINT16_(0x00)                                       /*  (NVMCTRL_INTFLAG) Interrupt Flag Status and Clear  Reset Value */

#define NVMCTRL_INTFLAG_DONE_Pos              _UINT16_(0)                                          /* (NVMCTRL_INTFLAG) Command Done Position */
#define NVMCTRL_INTFLAG_DONE_Msk              (_UINT16_(0x1) << NVMCTRL_INTFLAG_DONE_Pos)          /* (NVMCTRL_INTFLAG) Command Done Mask */
#define NVMCTRL_INTFLAG_DONE(value)           (NVMCTRL_INTFLAG_DONE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_DONE_Pos)) /* Assignment of value for DONE in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_ADDRE_Pos             _UINT16_(1)                                          /* (NVMCTRL_INTFLAG) Address Error Position */
#define NVMCTRL_INTFLAG_ADDRE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_ADDRE_Pos)         /* (NVMCTRL_INTFLAG) Address Error Mask */
#define NVMCTRL_INTFLAG_ADDRE(value)          (NVMCTRL_INTFLAG_ADDRE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_ADDRE_Pos)) /* Assignment of value for ADDRE in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_PROGE_Pos             _UINT16_(2)                                          /* (NVMCTRL_INTFLAG) Programming Error Position */
#define NVMCTRL_INTFLAG_PROGE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_PROGE_Pos)         /* (NVMCTRL_INTFLAG) Programming Error Mask */
#define NVMCTRL_INTFLAG_PROGE(value)          (NVMCTRL_INTFLAG_PROGE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_PROGE_Pos)) /* Assignment of value for PROGE in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_LOCKE_Pos             _UINT16_(3)                                          /* (NVMCTRL_INTFLAG) Lock Error Position */
#define NVMCTRL_INTFLAG_LOCKE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_LOCKE_Pos)         /* (NVMCTRL_INTFLAG) Lock Error Mask */
#define NVMCTRL_INTFLAG_LOCKE(value)          (NVMCTRL_INTFLAG_LOCKE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_LOCKE_Pos)) /* Assignment of value for LOCKE in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_ECCSE_Pos             _UINT16_(4)                                          /* (NVMCTRL_INTFLAG) ECC Single Error Position */
#define NVMCTRL_INTFLAG_ECCSE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_ECCSE_Pos)         /* (NVMCTRL_INTFLAG) ECC Single Error Mask */
#define NVMCTRL_INTFLAG_ECCSE(value)          (NVMCTRL_INTFLAG_ECCSE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_ECCSE_Pos)) /* Assignment of value for ECCSE in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_ECCDE_Pos             _UINT16_(5)                                          /* (NVMCTRL_INTFLAG) ECC Dual Error Position */
#define NVMCTRL_INTFLAG_ECCDE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_ECCDE_Pos)         /* (NVMCTRL_INTFLAG) ECC Dual Error Mask */
#define NVMCTRL_INTFLAG_ECCDE(value)          (NVMCTRL_INTFLAG_ECCDE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_ECCDE_Pos)) /* Assignment of value for ECCDE in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_NVME_Pos              _UINT16_(6)                                          /* (NVMCTRL_INTFLAG) NVM Error Position */
#define NVMCTRL_INTFLAG_NVME_Msk              (_UINT16_(0x1) << NVMCTRL_INTFLAG_NVME_Pos)          /* (NVMCTRL_INTFLAG) NVM Error Mask */
#define NVMCTRL_INTFLAG_NVME(value)           (NVMCTRL_INTFLAG_NVME_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_NVME_Pos)) /* Assignment of value for NVME in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_SUSP_Pos              _UINT16_(7)                                          /* (NVMCTRL_INTFLAG) Suspended Write Or Erase Operation Position */
#define NVMCTRL_INTFLAG_SUSP_Msk              (_UINT16_(0x1) << NVMCTRL_INTFLAG_SUSP_Pos)          /* (NVMCTRL_INTFLAG) Suspended Write Or Erase Operation Mask */
#define NVMCTRL_INTFLAG_SUSP(value)           (NVMCTRL_INTFLAG_SUSP_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SUSP_Pos)) /* Assignment of value for SUSP in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_SEESFULL_Pos          _UINT16_(8)                                          /* (NVMCTRL_INTFLAG) Active SEES Full Position */
#define NVMCTRL_INTFLAG_SEESFULL_Msk          (_UINT16_(0x1) << NVMCTRL_INTFLAG_SEESFULL_Pos)      /* (NVMCTRL_INTFLAG) Active SEES Full Mask */
#define NVMCTRL_INTFLAG_SEESFULL(value)       (NVMCTRL_INTFLAG_SEESFULL_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SEESFULL_Pos)) /* Assignment of value for SEESFULL in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_SEESOVF_Pos           _UINT16_(9)                                          /* (NVMCTRL_INTFLAG) Active SEES Overflow Position */
#define NVMCTRL_INTFLAG_SEESOVF_Msk           (_UINT16_(0x1) << NVMCTRL_INTFLAG_SEESOVF_Pos)       /* (NVMCTRL_INTFLAG) Active SEES Overflow Mask */
#define NVMCTRL_INTFLAG_SEESOVF(value)        (NVMCTRL_INTFLAG_SEESOVF_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SEESOVF_Pos)) /* Assignment of value for SEESOVF in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_SEEWRC_Pos            _UINT16_(10)                                         /* (NVMCTRL_INTFLAG) SEE Write Completed Position */
#define NVMCTRL_INTFLAG_SEEWRC_Msk            (_UINT16_(0x1) << NVMCTRL_INTFLAG_SEEWRC_Pos)        /* (NVMCTRL_INTFLAG) SEE Write Completed Mask */
#define NVMCTRL_INTFLAG_SEEWRC(value)         (NVMCTRL_INTFLAG_SEEWRC_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SEEWRC_Pos)) /* Assignment of value for SEEWRC in the NVMCTRL_INTFLAG register */
#define NVMCTRL_INTFLAG_Msk                   _UINT16_(0x07FF)                                     /* (NVMCTRL_INTFLAG) Register Mask  */


/* -------- NVMCTRL_STATUS : (NVMCTRL Offset: 0x12) ( R/ 16) Status -------- */
#define NVMCTRL_STATUS_RESETVALUE             _UINT16_(0x00)                                       /*  (NVMCTRL_STATUS) Status  Reset Value */

#define NVMCTRL_STATUS_READY_Pos              _UINT16_(0)                                          /* (NVMCTRL_STATUS) Ready to accept a command Position */
#define NVMCTRL_STATUS_READY_Msk              (_UINT16_(0x1) << NVMCTRL_STATUS_READY_Pos)          /* (NVMCTRL_STATUS) Ready to accept a command Mask */
#define NVMCTRL_STATUS_READY(value)           (NVMCTRL_STATUS_READY_Msk & (_UINT16_(value) << NVMCTRL_STATUS_READY_Pos)) /* Assignment of value for READY in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_PRM_Pos                _UINT16_(1)                                          /* (NVMCTRL_STATUS) Power Reduction Mode Position */
#define NVMCTRL_STATUS_PRM_Msk                (_UINT16_(0x1) << NVMCTRL_STATUS_PRM_Pos)            /* (NVMCTRL_STATUS) Power Reduction Mode Mask */
#define NVMCTRL_STATUS_PRM(value)             (NVMCTRL_STATUS_PRM_Msk & (_UINT16_(value) << NVMCTRL_STATUS_PRM_Pos)) /* Assignment of value for PRM in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_LOAD_Pos               _UINT16_(2)                                          /* (NVMCTRL_STATUS) NVM Page Buffer Active Loading Position */
#define NVMCTRL_STATUS_LOAD_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_LOAD_Pos)           /* (NVMCTRL_STATUS) NVM Page Buffer Active Loading Mask */
#define NVMCTRL_STATUS_LOAD(value)            (NVMCTRL_STATUS_LOAD_Msk & (_UINT16_(value) << NVMCTRL_STATUS_LOAD_Pos)) /* Assignment of value for LOAD in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_SUSP_Pos               _UINT16_(3)                                          /* (NVMCTRL_STATUS) NVM Write Or Erase Operation Is Suspended Position */
#define NVMCTRL_STATUS_SUSP_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_SUSP_Pos)           /* (NVMCTRL_STATUS) NVM Write Or Erase Operation Is Suspended Mask */
#define NVMCTRL_STATUS_SUSP(value)            (NVMCTRL_STATUS_SUSP_Msk & (_UINT16_(value) << NVMCTRL_STATUS_SUSP_Pos)) /* Assignment of value for SUSP in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_AFIRST_Pos             _UINT16_(4)                                          /* (NVMCTRL_STATUS) BANKA First Position */
#define NVMCTRL_STATUS_AFIRST_Msk             (_UINT16_(0x1) << NVMCTRL_STATUS_AFIRST_Pos)         /* (NVMCTRL_STATUS) BANKA First Mask */
#define NVMCTRL_STATUS_AFIRST(value)          (NVMCTRL_STATUS_AFIRST_Msk & (_UINT16_(value) << NVMCTRL_STATUS_AFIRST_Pos)) /* Assignment of value for AFIRST in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_BPDIS_Pos              _UINT16_(5)                                          /* (NVMCTRL_STATUS) Boot Loader Protection Disable Position */
#define NVMCTRL_STATUS_BPDIS_Msk              (_UINT16_(0x1) << NVMCTRL_STATUS_BPDIS_Pos)          /* (NVMCTRL_STATUS) Boot Loader Protection Disable Mask */
#define NVMCTRL_STATUS_BPDIS(value)           (NVMCTRL_STATUS_BPDIS_Msk & (_UINT16_(value) << NVMCTRL_STATUS_BPDIS_Pos)) /* Assignment of value for BPDIS in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_BOOTPROT_Pos           _UINT16_(8)                                          /* (NVMCTRL_STATUS) Boot Loader Protection Size Position */
#define NVMCTRL_STATUS_BOOTPROT_Msk           (_UINT16_(0xF) << NVMCTRL_STATUS_BOOTPROT_Pos)       /* (NVMCTRL_STATUS) Boot Loader Protection Size Mask */
#define NVMCTRL_STATUS_BOOTPROT(value)        (NVMCTRL_STATUS_BOOTPROT_Msk & (_UINT16_(value) << NVMCTRL_STATUS_BOOTPROT_Pos)) /* Assignment of value for BOOTPROT in the NVMCTRL_STATUS register */
#define   NVMCTRL_STATUS_BOOTPROT_0_Val       _UINT16_(0xF)                                        /* (NVMCTRL_STATUS) 0 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_8_Val       _UINT16_(0xE)                                        /* (NVMCTRL_STATUS) 8 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_16_Val      _UINT16_(0xD)                                        /* (NVMCTRL_STATUS) 16 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_24_Val      _UINT16_(0xC)                                        /* (NVMCTRL_STATUS) 24 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_32_Val      _UINT16_(0xB)                                        /* (NVMCTRL_STATUS) 32 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_40_Val      _UINT16_(0xA)                                        /* (NVMCTRL_STATUS) 40 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_48_Val      _UINT16_(0x9)                                        /* (NVMCTRL_STATUS) 48 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_56_Val      _UINT16_(0x8)                                        /* (NVMCTRL_STATUS) 56 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_64_Val      _UINT16_(0x7)                                        /* (NVMCTRL_STATUS) 64 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_72_Val      _UINT16_(0x6)                                        /* (NVMCTRL_STATUS) 72 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_80_Val      _UINT16_(0x5)                                        /* (NVMCTRL_STATUS) 80 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_88_Val      _UINT16_(0x4)                                        /* (NVMCTRL_STATUS) 88 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_96_Val      _UINT16_(0x3)                                        /* (NVMCTRL_STATUS) 96 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_104_Val     _UINT16_(0x2)                                        /* (NVMCTRL_STATUS) 104 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_112_Val     _UINT16_(0x1)                                        /* (NVMCTRL_STATUS) 112 kbytes  */
#define   NVMCTRL_STATUS_BOOTPROT_120_Val     _UINT16_(0x0)                                        /* (NVMCTRL_STATUS) 120 kbytes  */
#define NVMCTRL_STATUS_BOOTPROT_0             (NVMCTRL_STATUS_BOOTPROT_0_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 0 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_8             (NVMCTRL_STATUS_BOOTPROT_8_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 8 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_16            (NVMCTRL_STATUS_BOOTPROT_16_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 16 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_24            (NVMCTRL_STATUS_BOOTPROT_24_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 24 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_32            (NVMCTRL_STATUS_BOOTPROT_32_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 32 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_40            (NVMCTRL_STATUS_BOOTPROT_40_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 40 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_48            (NVMCTRL_STATUS_BOOTPROT_48_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 48 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_56            (NVMCTRL_STATUS_BOOTPROT_56_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 56 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_64            (NVMCTRL_STATUS_BOOTPROT_64_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 64 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_72            (NVMCTRL_STATUS_BOOTPROT_72_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 72 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_80            (NVMCTRL_STATUS_BOOTPROT_80_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 80 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_88            (NVMCTRL_STATUS_BOOTPROT_88_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 88 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_96            (NVMCTRL_STATUS_BOOTPROT_96_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 96 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_104           (NVMCTRL_STATUS_BOOTPROT_104_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 104 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_112           (NVMCTRL_STATUS_BOOTPROT_112_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 112 kbytes Position */
#define NVMCTRL_STATUS_BOOTPROT_120           (NVMCTRL_STATUS_BOOTPROT_120_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 120 kbytes Position */
#define NVMCTRL_STATUS_DBPE_Pos               _UINT16_(12)                                         /* (NVMCTRL_STATUS) Dual Boot Protection Enable Position */
#define NVMCTRL_STATUS_DBPE_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_DBPE_Pos)           /* (NVMCTRL_STATUS) Dual Boot Protection Enable Mask */
#define NVMCTRL_STATUS_DBPE(value)            (NVMCTRL_STATUS_DBPE_Msk & (_UINT16_(value) << NVMCTRL_STATUS_DBPE_Pos)) /* Assignment of value for DBPE in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_BPHL_Pos               _UINT16_(13)                                         /* (NVMCTRL_STATUS) Boot Protect Hard Lock Position */
#define NVMCTRL_STATUS_BPHL_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_BPHL_Pos)           /* (NVMCTRL_STATUS) Boot Protect Hard Lock Mask */
#define NVMCTRL_STATUS_BPHL(value)            (NVMCTRL_STATUS_BPHL_Msk & (_UINT16_(value) << NVMCTRL_STATUS_BPHL_Pos)) /* Assignment of value for BPHL in the NVMCTRL_STATUS register */
#define NVMCTRL_STATUS_Msk                    _UINT16_(0x3F3F)                                     /* (NVMCTRL_STATUS) Register Mask  */


/* -------- NVMCTRL_ADDR : (NVMCTRL Offset: 0x14) (R/W 32) Address -------- */
#define NVMCTRL_ADDR_RESETVALUE               _UINT32_(0x00)                                       /*  (NVMCTRL_ADDR) Address  Reset Value */

#define NVMCTRL_ADDR_ADDR_Pos                 _UINT32_(0)                                          /* (NVMCTRL_ADDR) NVM Address Position */
#define NVMCTRL_ADDR_ADDR_Msk                 (_UINT32_(0xFFFFFF) << NVMCTRL_ADDR_ADDR_Pos)        /* (NVMCTRL_ADDR) NVM Address Mask */
#define NVMCTRL_ADDR_ADDR(value)              (NVMCTRL_ADDR_ADDR_Msk & (_UINT32_(value) << NVMCTRL_ADDR_ADDR_Pos)) /* Assignment of value for ADDR in the NVMCTRL_ADDR register */
#define NVMCTRL_ADDR_Msk                      _UINT32_(0x00FFFFFF)                                 /* (NVMCTRL_ADDR) Register Mask  */


/* -------- NVMCTRL_RUNLOCK : (NVMCTRL Offset: 0x18) ( R/ 32) Lock Section -------- */
#define NVMCTRL_RUNLOCK_RESETVALUE            _UINT32_(0x00)                                       /*  (NVMCTRL_RUNLOCK) Lock Section  Reset Value */

#define NVMCTRL_RUNLOCK_RUNLOCK_Pos           _UINT32_(0)                                          /* (NVMCTRL_RUNLOCK) Region Un-Lock Bits Position */
#define NVMCTRL_RUNLOCK_RUNLOCK_Msk           (_UINT32_(0xFFFFFFFF) << NVMCTRL_RUNLOCK_RUNLOCK_Pos) /* (NVMCTRL_RUNLOCK) Region Un-Lock Bits Mask */
#define NVMCTRL_RUNLOCK_RUNLOCK(value)        (NVMCTRL_RUNLOCK_RUNLOCK_Msk & (_UINT32_(value) << NVMCTRL_RUNLOCK_RUNLOCK_Pos)) /* Assignment of value for RUNLOCK in the NVMCTRL_RUNLOCK register */
#define NVMCTRL_RUNLOCK_Msk                   _UINT32_(0xFFFFFFFF)                                 /* (NVMCTRL_RUNLOCK) Register Mask  */


/* -------- NVMCTRL_PBLDATA : (NVMCTRL Offset: 0x1C) ( R/ 32) Page Buffer Load Data x -------- */
#define NVMCTRL_PBLDATA_RESETVALUE            _UINT32_(0xFFFFFFFF)                                 /*  (NVMCTRL_PBLDATA) Page Buffer Load Data x  Reset Value */

#define NVMCTRL_PBLDATA_DATA_Pos              _UINT32_(0)                                          /* (NVMCTRL_PBLDATA) Page Buffer Data Position */
#define NVMCTRL_PBLDATA_DATA_Msk              (_UINT32_(0xFFFFFFFF) << NVMCTRL_PBLDATA_DATA_Pos)   /* (NVMCTRL_PBLDATA) Page Buffer Data Mask */
#define NVMCTRL_PBLDATA_DATA(value)           (NVMCTRL_PBLDATA_DATA_Msk & (_UINT32_(value) << NVMCTRL_PBLDATA_DATA_Pos)) /* Assignment of value for DATA in the NVMCTRL_PBLDATA register */
#define NVMCTRL_PBLDATA_Msk                   _UINT32_(0xFFFFFFFF)                                 /* (NVMCTRL_PBLDATA) Register Mask  */


/* -------- NVMCTRL_ECCERR : (NVMCTRL Offset: 0x24) ( R/ 32) ECC Error Status Register -------- */
#define NVMCTRL_ECCERR_RESETVALUE             _UINT32_(0x00)                                       /*  (NVMCTRL_ECCERR) ECC Error Status Register  Reset Value */

#define NVMCTRL_ECCERR_ADDR_Pos               _UINT32_(0)                                          /* (NVMCTRL_ECCERR) Error Address Position */
#define NVMCTRL_ECCERR_ADDR_Msk               (_UINT32_(0xFFFFFF) << NVMCTRL_ECCERR_ADDR_Pos)      /* (NVMCTRL_ECCERR) Error Address Mask */
#define NVMCTRL_ECCERR_ADDR(value)            (NVMCTRL_ECCERR_ADDR_Msk & (_UINT32_(value) << NVMCTRL_ECCERR_ADDR_Pos)) /* Assignment of value for ADDR in the NVMCTRL_ECCERR register */
#define NVMCTRL_ECCERR_TYPEL_Pos              _UINT32_(28)                                         /* (NVMCTRL_ECCERR) Low Double-Word Error Type Position */
#define NVMCTRL_ECCERR_TYPEL_Msk              (_UINT32_(0x3) << NVMCTRL_ECCERR_TYPEL_Pos)          /* (NVMCTRL_ECCERR) Low Double-Word Error Type Mask */
#define NVMCTRL_ECCERR_TYPEL(value)           (NVMCTRL_ECCERR_TYPEL_Msk & (_UINT32_(value) << NVMCTRL_ECCERR_TYPEL_Pos)) /* Assignment of value for TYPEL in the NVMCTRL_ECCERR register */
#define   NVMCTRL_ECCERR_TYPEL_NONE_Val       _UINT32_(0x0)                                        /* (NVMCTRL_ECCERR) No Error Detected Since Last Read  */
#define   NVMCTRL_ECCERR_TYPEL_SINGLE_Val     _UINT32_(0x1)                                        /* (NVMCTRL_ECCERR) At Least One Single Error Detected Since last Read  */
#define   NVMCTRL_ECCERR_TYPEL_DUAL_Val       _UINT32_(0x2)                                        /* (NVMCTRL_ECCERR) At Least One Dual Error Detected Since Last Read  */
#define NVMCTRL_ECCERR_TYPEL_NONE             (NVMCTRL_ECCERR_TYPEL_NONE_Val << NVMCTRL_ECCERR_TYPEL_Pos) /* (NVMCTRL_ECCERR) No Error Detected Since Last Read Position */
#define NVMCTRL_ECCERR_TYPEL_SINGLE           (NVMCTRL_ECCERR_TYPEL_SINGLE_Val << NVMCTRL_ECCERR_TYPEL_Pos) /* (NVMCTRL_ECCERR) At Least One Single Error Detected Since last Read Position */
#define NVMCTRL_ECCERR_TYPEL_DUAL             (NVMCTRL_ECCERR_TYPEL_DUAL_Val << NVMCTRL_ECCERR_TYPEL_Pos) /* (NVMCTRL_ECCERR) At Least One Dual Error Detected Since Last Read Position */
#define NVMCTRL_ECCERR_TYPEH_Pos              _UINT32_(30)                                         /* (NVMCTRL_ECCERR) High Double-Word Error Type Position */
#define NVMCTRL_ECCERR_TYPEH_Msk              (_UINT32_(0x3) << NVMCTRL_ECCERR_TYPEH_Pos)          /* (NVMCTRL_ECCERR) High Double-Word Error Type Mask */
#define NVMCTRL_ECCERR_TYPEH(value)           (NVMCTRL_ECCERR_TYPEH_Msk & (_UINT32_(value) << NVMCTRL_ECCERR_TYPEH_Pos)) /* Assignment of value for TYPEH in the NVMCTRL_ECCERR register */
#define   NVMCTRL_ECCERR_TYPEH_NONE_Val       _UINT32_(0x0)                                        /* (NVMCTRL_ECCERR) No Error Detected Since Last Read  */
#define   NVMCTRL_ECCERR_TYPEH_SINGLE_Val     _UINT32_(0x1)                                        /* (NVMCTRL_ECCERR) At Least One Single Error Detected Since last Read  */
#define   NVMCTRL_ECCERR_TYPEH_DUAL_Val       _UINT32_(0x2)                                        /* (NVMCTRL_ECCERR) At Least One Dual Error Detected Since Last Read  */
#define NVMCTRL_ECCERR_TYPEH_NONE             (NVMCTRL_ECCERR_TYPEH_NONE_Val << NVMCTRL_ECCERR_TYPEH_Pos) /* (NVMCTRL_ECCERR) No Error Detected Since Last Read Position */
#define NVMCTRL_ECCERR_TYPEH_SINGLE           (NVMCTRL_ECCERR_TYPEH_SINGLE_Val << NVMCTRL_ECCERR_TYPEH_Pos) /* (NVMCTRL_ECCERR) At Least One Single Error Detected Since last Read Position */
#define NVMCTRL_ECCERR_TYPEH_DUAL             (NVMCTRL_ECCERR_TYPEH_DUAL_Val << NVMCTRL_ECCERR_TYPEH_Pos) /* (NVMCTRL_ECCERR) At Least One Dual Error Detected Since Last Read Position */
#define NVMCTRL_ECCERR_Msk                    _UINT32_(0xF0FFFFFF)                                 /* (NVMCTRL_ECCERR) Register Mask  */


/* -------- NVMCTRL_DBGCTRL : (NVMCTRL Offset: 0x28) (R/W 8) Debug Control -------- */
#define NVMCTRL_DBGCTRL_RESETVALUE            _UINT8_(0x00)                                        /*  (NVMCTRL_DBGCTRL) Debug Control  Reset Value */

#define NVMCTRL_DBGCTRL_ECCDIS_Pos            _UINT8_(0)                                           /* (NVMCTRL_DBGCTRL) Debugger ECC Read Disable Position */
#define NVMCTRL_DBGCTRL_ECCDIS_Msk            (_UINT8_(0x1) << NVMCTRL_DBGCTRL_ECCDIS_Pos)         /* (NVMCTRL_DBGCTRL) Debugger ECC Read Disable Mask */
#define NVMCTRL_DBGCTRL_ECCDIS(value)         (NVMCTRL_DBGCTRL_ECCDIS_Msk & (_UINT8_(value) << NVMCTRL_DBGCTRL_ECCDIS_Pos)) /* Assignment of value for ECCDIS in the NVMCTRL_DBGCTRL register */
#define NVMCTRL_DBGCTRL_ECCELOG_Pos           _UINT8_(1)                                           /* (NVMCTRL_DBGCTRL) Debugger ECC Error Tracking Mode Position */
#define NVMCTRL_DBGCTRL_ECCELOG_Msk           (_UINT8_(0x1) << NVMCTRL_DBGCTRL_ECCELOG_Pos)        /* (NVMCTRL_DBGCTRL) Debugger ECC Error Tracking Mode Mask */
#define NVMCTRL_DBGCTRL_ECCELOG(value)        (NVMCTRL_DBGCTRL_ECCELOG_Msk & (_UINT8_(value) << NVMCTRL_DBGCTRL_ECCELOG_Pos)) /* Assignment of value for ECCELOG in the NVMCTRL_DBGCTRL register */
#define NVMCTRL_DBGCTRL_Msk                   _UINT8_(0x03)                                        /* (NVMCTRL_DBGCTRL) Register Mask  */


/* -------- NVMCTRL_BCTRL : (NVMCTRL Offset: 0x29) (R/W 8) Boot Control -------- */
#define NVMCTRL_BCTRL_RESETVALUE              _UINT8_(0x00)                                        /*  (NVMCTRL_BCTRL) Boot Control  Reset Value */

#define NVMCTRL_BCTRL_BRPE_Pos                _UINT8_(0)                                           /* (NVMCTRL_BCTRL) Boot Read Protection Enable Position */
#define NVMCTRL_BCTRL_BRPE_Msk                (_UINT8_(0x1) << NVMCTRL_BCTRL_BRPE_Pos)             /* (NVMCTRL_BCTRL) Boot Read Protection Enable Mask */
#define NVMCTRL_BCTRL_BRPE(value)             (NVMCTRL_BCTRL_BRPE_Msk & (_UINT8_(value) << NVMCTRL_BCTRL_BRPE_Pos)) /* Assignment of value for BRPE in the NVMCTRL_BCTRL register */
#define NVMCTRL_BCTRL_Msk                     _UINT8_(0x01)                                        /* (NVMCTRL_BCTRL) Register Mask  */


/* -------- NVMCTRL_SEECFG : (NVMCTRL Offset: 0x2A) (R/W 8) SmartEEPROM Configuration Register -------- */
#define NVMCTRL_SEECFG_RESETVALUE             _UINT8_(0x00)                                        /*  (NVMCTRL_SEECFG) SmartEEPROM Configuration Register  Reset Value */

#define NVMCTRL_SEECFG_WMODE_Pos              _UINT8_(0)                                           /* (NVMCTRL_SEECFG) Write Mode Position */
#define NVMCTRL_SEECFG_WMODE_Msk              (_UINT8_(0x1) << NVMCTRL_SEECFG_WMODE_Pos)           /* (NVMCTRL_SEECFG) Write Mode Mask */
#define NVMCTRL_SEECFG_WMODE(value)           (NVMCTRL_SEECFG_WMODE_Msk & (_UINT8_(value) << NVMCTRL_SEECFG_WMODE_Pos)) /* Assignment of value for WMODE in the NVMCTRL_SEECFG register */
#define   NVMCTRL_SEECFG_WMODE_UNBUFFERED_Val _UINT8_(0x0)                                         /* (NVMCTRL_SEECFG) A NVM write command is issued after each write in the pagebuffer  */
#define NVMCTRL_SEECFG_WMODE_UNBUFFERED       (NVMCTRL_SEECFG_WMODE_UNBUFFERED_Val << NVMCTRL_SEECFG_WMODE_Pos) /* (NVMCTRL_SEECFG) A NVM write command is issued after each write in the pagebuffer Position */
#define NVMCTRL_SEECFG_APRDIS_Pos             _UINT8_(1)                                           /* (NVMCTRL_SEECFG) Automatic Page Reallocation Disable Position */
#define NVMCTRL_SEECFG_APRDIS_Msk             (_UINT8_(0x1) << NVMCTRL_SEECFG_APRDIS_Pos)          /* (NVMCTRL_SEECFG) Automatic Page Reallocation Disable Mask */
#define NVMCTRL_SEECFG_APRDIS(value)          (NVMCTRL_SEECFG_APRDIS_Msk & (_UINT8_(value) << NVMCTRL_SEECFG_APRDIS_Pos)) /* Assignment of value for APRDIS in the NVMCTRL_SEECFG register */
#define NVMCTRL_SEECFG_Msk                    _UINT8_(0x03)                                        /* (NVMCTRL_SEECFG) Register Mask  */


/* -------- NVMCTRL_SEESTAT : (NVMCTRL Offset: 0x2C) ( R/ 32) SmartEEPROM Status Register -------- */
#define NVMCTRL_SEESTAT_RESETVALUE            _UINT32_(0x00)                                       /*  (NVMCTRL_SEESTAT) SmartEEPROM Status Register  Reset Value */

#define NVMCTRL_SEESTAT_ASEES_Pos             _UINT32_(0)                                          /* (NVMCTRL_SEESTAT) Active SmartEEPROM Sector Position */
#define NVMCTRL_SEESTAT_ASEES_Msk             (_UINT32_(0x1) << NVMCTRL_SEESTAT_ASEES_Pos)         /* (NVMCTRL_SEESTAT) Active SmartEEPROM Sector Mask */
#define NVMCTRL_SEESTAT_ASEES(value)          (NVMCTRL_SEESTAT_ASEES_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_ASEES_Pos)) /* Assignment of value for ASEES in the NVMCTRL_SEESTAT register */
#define NVMCTRL_SEESTAT_BUSY_Pos              _UINT32_(2)                                          /* (NVMCTRL_SEESTAT) Busy Position */
#define NVMCTRL_SEESTAT_BUSY_Msk              (_UINT32_(0x1) << NVMCTRL_SEESTAT_BUSY_Pos)          /* (NVMCTRL_SEESTAT) Busy Mask */
#define NVMCTRL_SEESTAT_BUSY(value)           (NVMCTRL_SEESTAT_BUSY_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_BUSY_Pos)) /* Assignment of value for BUSY in the NVMCTRL_SEESTAT register */
#define NVMCTRL_SEESTAT_LOCK_Pos              _UINT32_(3)                                          /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access Is Locked Position */
#define NVMCTRL_SEESTAT_LOCK_Msk              (_UINT32_(0x1) << NVMCTRL_SEESTAT_LOCK_Pos)          /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access Is Locked Mask */
#define NVMCTRL_SEESTAT_LOCK(value)           (NVMCTRL_SEESTAT_LOCK_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_LOCK_Pos)) /* Assignment of value for LOCK in the NVMCTRL_SEESTAT register */
#define NVMCTRL_SEESTAT_RLOCK_Pos             _UINT32_(4)                                          /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access To Register Address Space Is Locked Position */
#define NVMCTRL_SEESTAT_RLOCK_Msk             (_UINT32_(0x1) << NVMCTRL_SEESTAT_RLOCK_Pos)         /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access To Register Address Space Is Locked Mask */
#define NVMCTRL_SEESTAT_RLOCK(value)          (NVMCTRL_SEESTAT_RLOCK_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_RLOCK_Pos)) /* Assignment of value for RLOCK in the NVMCTRL_SEESTAT register */
#define NVMCTRL_SEESTAT_SBLK_Pos              _UINT32_(8)                                          /* (NVMCTRL_SEESTAT) Blocks Number In a Sector Position */
#define NVMCTRL_SEESTAT_SBLK_Msk              (_UINT32_(0xF) << NVMCTRL_SEESTAT_SBLK_Pos)          /* (NVMCTRL_SEESTAT) Blocks Number In a Sector Mask */
#define NVMCTRL_SEESTAT_SBLK(value)           (NVMCTRL_SEESTAT_SBLK_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_SBLK_Pos)) /* Assignment of value for SBLK in the NVMCTRL_SEESTAT register */
#define NVMCTRL_SEESTAT_PSZ_Pos               _UINT32_(16)                                         /* (NVMCTRL_SEESTAT) SmartEEPROM Page Size Position */
#define NVMCTRL_SEESTAT_PSZ_Msk               (_UINT32_(0x7) << NVMCTRL_SEESTAT_PSZ_Pos)           /* (NVMCTRL_SEESTAT) SmartEEPROM Page Size Mask */
#define NVMCTRL_SEESTAT_PSZ(value)            (NVMCTRL_SEESTAT_PSZ_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_PSZ_Pos)) /* Assignment of value for PSZ in the NVMCTRL_SEESTAT register */
#define NVMCTRL_SEESTAT_Msk                   _UINT32_(0x00070F1D)                                 /* (NVMCTRL_SEESTAT) Register Mask  */


/* NVMCTRL register offsets definitions */
#define NVMCTRL_CTRLA_REG_OFST         _UINT32_(0x00)      /* (NVMCTRL_CTRLA) Control A Offset */
#define NVMCTRL_CTRLB_REG_OFST         _UINT32_(0x04)      /* (NVMCTRL_CTRLB) Control B Offset */
#define NVMCTRL_PARAM_REG_OFST         _UINT32_(0x08)      /* (NVMCTRL_PARAM) NVM Parameter Offset */
#define NVMCTRL_INTENCLR_REG_OFST      _UINT32_(0x0C)      /* (NVMCTRL_INTENCLR) Interrupt Enable Clear Offset */
#define NVMCTRL_INTENSET_REG_OFST      _UINT32_(0x0E)      /* (NVMCTRL_INTENSET) Interrupt Enable Set Offset */
#define NVMCTRL_INTFLAG_REG_OFST       _UINT32_(0x10)      /* (NVMCTRL_INTFLAG) Interrupt Flag Status and Clear Offset */
#define NVMCTRL_STATUS_REG_OFST        _UINT32_(0x12)      /* (NVMCTRL_STATUS) Status Offset */
#define NVMCTRL_ADDR_REG_OFST          _UINT32_(0x14)      /* (NVMCTRL_ADDR) Address Offset */
#define NVMCTRL_RUNLOCK_REG_OFST       _UINT32_(0x18)      /* (NVMCTRL_RUNLOCK) Lock Section Offset */
#define NVMCTRL_PBLDATA_REG_OFST       _UINT32_(0x1C)      /* (NVMCTRL_PBLDATA) Page Buffer Load Data x Offset */
#define NVMCTRL_PBLDATA0_REG_OFST      _UINT32_(0x1C)      /* (NVMCTRL_PBLDATA0) Page Buffer Load Data x Offset */
#define NVMCTRL_PBLDATA1_REG_OFST      _UINT32_(0x20)      /* (NVMCTRL_PBLDATA1) Page Buffer Load Data x Offset */
#define NVMCTRL_ECCERR_REG_OFST        _UINT32_(0x24)      /* (NVMCTRL_ECCERR) ECC Error Status Register Offset */
#define NVMCTRL_DBGCTRL_REG_OFST       _UINT32_(0x28)      /* (NVMCTRL_DBGCTRL) Debug Control Offset */
#define NVMCTRL_BCTRL_REG_OFST         _UINT32_(0x29)      /* (NVMCTRL_BCTRL) Boot Control Offset */
#define NVMCTRL_SEECFG_REG_OFST        _UINT32_(0x2A)      /* (NVMCTRL_SEECFG) SmartEEPROM Configuration Register Offset */
#define NVMCTRL_SEESTAT_REG_OFST       _UINT32_(0x2C)      /* (NVMCTRL_SEESTAT) SmartEEPROM Status Register Offset */

#if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
/* NVMCTRL register API structure */
typedef struct
{  /* Non-Volatile Memory Controller */
  __IO  uint16_t                       NVMCTRL_CTRLA;      /* Offset: 0x00 (R/W  16) Control A */
  __I   uint8_t                        Reserved1[0x02];
  __O   uint16_t                       NVMCTRL_CTRLB;      /* Offset: 0x04 ( /W  16) Control B */
  __I   uint8_t                        Reserved2[0x02];
  __I   uint32_t                       NVMCTRL_PARAM;      /* Offset: 0x08 (R/   32) NVM Parameter */
  __IO  uint16_t                       NVMCTRL_INTENCLR;   /* Offset: 0x0C (R/W  16) Interrupt Enable Clear */
  __IO  uint16_t                       NVMCTRL_INTENSET;   /* Offset: 0x0E (R/W  16) Interrupt Enable Set */
  __IO  uint16_t                       NVMCTRL_INTFLAG;    /* Offset: 0x10 (R/W  16) Interrupt Flag Status and Clear */
  __I   uint16_t                       NVMCTRL_STATUS;     /* Offset: 0x12 (R/   16) Status */
  __IO  uint32_t                       NVMCTRL_ADDR;       /* Offset: 0x14 (R/W  32) Address */
  __I   uint32_t                       NVMCTRL_RUNLOCK;    /* Offset: 0x18 (R/   32) Lock Section */
  __I   uint32_t                       NVMCTRL_PBLDATA[2]; /* Offset: 0x1C (R/   32) Page Buffer Load Data x */
  __I   uint32_t                       NVMCTRL_ECCERR;     /* Offset: 0x24 (R/   32) ECC Error Status Register */
  __IO  uint8_t                        NVMCTRL_DBGCTRL;    /* Offset: 0x28 (R/W  8) Debug Control */
  __IO  uint8_t                        NVMCTRL_BCTRL;      /* Offset: 0x29 (R/W  8) Boot Control */
  __IO  uint8_t                        NVMCTRL_SEECFG;     /* Offset: 0x2A (R/W  8) SmartEEPROM Configuration Register */
  __I   uint8_t                        Reserved3[0x01];
  __I   uint32_t                       NVMCTRL_SEESTAT;    /* Offset: 0x2C (R/   32) SmartEEPROM Status Register */
} nvmctrl_registers_t;


#endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
#endif /* _PIC32CXSG41_NVMCTRL_COMPONENT_H_ */
