1 /*
2  * Component description for NVMCTRL
3  *
4  * Copyright (c) 2023 Microchip Technology Inc. and its subsidiaries.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *   http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19 
20 /* file generated from device description file (ATDF) version 2023-03-17T09:48:46Z */
21 #ifndef _PIC32CXSG60_NVMCTRL_COMPONENT_H_
22 #define _PIC32CXSG60_NVMCTRL_COMPONENT_H_
23 
24 /* ************************************************************************** */
25 /*   SOFTWARE API DEFINITION FOR NVMCTRL                                      */
26 /* ************************************************************************** */
27 
28 /* -------- NVMCTRL_CTRLA : (NVMCTRL Offset: 0x00) (R/W 16) Control A -------- */
29 #define NVMCTRL_CTRLA_RESETVALUE              _UINT16_(0x04)                                       /*  (NVMCTRL_CTRLA) Control A  Reset Value */
30 
31 #define NVMCTRL_CTRLA_AUTOWS_Pos              _UINT16_(2)                                          /* (NVMCTRL_CTRLA) Auto Wait State Enable Position */
32 #define NVMCTRL_CTRLA_AUTOWS_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_AUTOWS_Pos)          /* (NVMCTRL_CTRLA) Auto Wait State Enable Mask */
33 #define NVMCTRL_CTRLA_AUTOWS(value)           (NVMCTRL_CTRLA_AUTOWS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AUTOWS_Pos)) /* Assigment of value for AUTOWS in the NVMCTRL_CTRLA register */
34 #define NVMCTRL_CTRLA_SUSPEN_Pos              _UINT16_(3)                                          /* (NVMCTRL_CTRLA) Suspend Enable Position */
35 #define NVMCTRL_CTRLA_SUSPEN_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_SUSPEN_Pos)          /* (NVMCTRL_CTRLA) Suspend Enable Mask */
36 #define NVMCTRL_CTRLA_SUSPEN(value)           (NVMCTRL_CTRLA_SUSPEN_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_SUSPEN_Pos)) /* Assigment of value for SUSPEN in the NVMCTRL_CTRLA register */
37 #define NVMCTRL_CTRLA_WMODE_Pos               _UINT16_(4)                                          /* (NVMCTRL_CTRLA) Write Mode Position */
38 #define NVMCTRL_CTRLA_WMODE_Msk               (_UINT16_(0x3) << NVMCTRL_CTRLA_WMODE_Pos)           /* (NVMCTRL_CTRLA) Write Mode Mask */
39 #define NVMCTRL_CTRLA_WMODE(value)            (NVMCTRL_CTRLA_WMODE_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_WMODE_Pos)) /* Assigment of value for WMODE in the NVMCTRL_CTRLA register */
40 #define   NVMCTRL_CTRLA_WMODE_MAN_Val         _UINT16_(0x0)                                        /* (NVMCTRL_CTRLA) Manual Write  */
41 #define   NVMCTRL_CTRLA_WMODE_ADW_Val         _UINT16_(0x1)                                        /* (NVMCTRL_CTRLA) Automatic Double Word Write  */
42 #define   NVMCTRL_CTRLA_WMODE_AQW_Val         _UINT16_(0x2)                                        /* (NVMCTRL_CTRLA) Automatic Quad Word  */
43 #define   NVMCTRL_CTRLA_WMODE_AP_Val          _UINT16_(0x3)                                        /* (NVMCTRL_CTRLA) Automatic Page Write  */
44 #define NVMCTRL_CTRLA_WMODE_MAN               (NVMCTRL_CTRLA_WMODE_MAN_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Manual Write Position  */
45 #define NVMCTRL_CTRLA_WMODE_ADW               (NVMCTRL_CTRLA_WMODE_ADW_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Automatic Double Word Write Position  */
46 #define NVMCTRL_CTRLA_WMODE_AQW               (NVMCTRL_CTRLA_WMODE_AQW_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Automatic Quad Word Position  */
47 #define NVMCTRL_CTRLA_WMODE_AP                (NVMCTRL_CTRLA_WMODE_AP_Val << NVMCTRL_CTRLA_WMODE_Pos) /* (NVMCTRL_CTRLA) Automatic Page Write Position  */
48 #define NVMCTRL_CTRLA_PRM_Pos                 _UINT16_(6)                                          /* (NVMCTRL_CTRLA) Power Reduction Mode during Sleep Position */
49 #define NVMCTRL_CTRLA_PRM_Msk                 (_UINT16_(0x3) << NVMCTRL_CTRLA_PRM_Pos)             /* (NVMCTRL_CTRLA) Power Reduction Mode during Sleep Mask */
50 #define NVMCTRL_CTRLA_PRM(value)              (NVMCTRL_CTRLA_PRM_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_PRM_Pos)) /* Assigment of value for PRM in the NVMCTRL_CTRLA register */
51 #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.  */
52 #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.  */
53 #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.  */
54 #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  */
55 #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  */
56 #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  */
57 #define NVMCTRL_CTRLA_RWS_Pos                 _UINT16_(8)                                          /* (NVMCTRL_CTRLA) NVM Read Wait States Position */
58 #define NVMCTRL_CTRLA_RWS_Msk                 (_UINT16_(0xF) << NVMCTRL_CTRLA_RWS_Pos)             /* (NVMCTRL_CTRLA) NVM Read Wait States Mask */
59 #define NVMCTRL_CTRLA_RWS(value)              (NVMCTRL_CTRLA_RWS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_RWS_Pos)) /* Assigment of value for RWS in the NVMCTRL_CTRLA register */
60 #define NVMCTRL_CTRLA_AHBNS0_Pos              _UINT16_(12)                                         /* (NVMCTRL_CTRLA) Force AHB0 access to NONSEQ, burst transfers are continuously rearbitrated Position */
61 #define NVMCTRL_CTRLA_AHBNS0_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_AHBNS0_Pos)          /* (NVMCTRL_CTRLA) Force AHB0 access to NONSEQ, burst transfers are continuously rearbitrated Mask */
62 #define NVMCTRL_CTRLA_AHBNS0(value)           (NVMCTRL_CTRLA_AHBNS0_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AHBNS0_Pos)) /* Assigment of value for AHBNS0 in the NVMCTRL_CTRLA register */
63 #define NVMCTRL_CTRLA_AHBNS1_Pos              _UINT16_(13)                                         /* (NVMCTRL_CTRLA) Force AHB1 access to NONSEQ, burst transfers are continuously rearbitrated Position */
64 #define NVMCTRL_CTRLA_AHBNS1_Msk              (_UINT16_(0x1) << NVMCTRL_CTRLA_AHBNS1_Pos)          /* (NVMCTRL_CTRLA) Force AHB1 access to NONSEQ, burst transfers are continuously rearbitrated Mask */
65 #define NVMCTRL_CTRLA_AHBNS1(value)           (NVMCTRL_CTRLA_AHBNS1_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AHBNS1_Pos)) /* Assigment of value for AHBNS1 in the NVMCTRL_CTRLA register */
66 #define NVMCTRL_CTRLA_CACHEDIS0_Pos           _UINT16_(14)                                         /* (NVMCTRL_CTRLA) AHB0 Cache Disable Position */
67 #define NVMCTRL_CTRLA_CACHEDIS0_Msk           (_UINT16_(0x1) << NVMCTRL_CTRLA_CACHEDIS0_Pos)       /* (NVMCTRL_CTRLA) AHB0 Cache Disable Mask */
68 #define NVMCTRL_CTRLA_CACHEDIS0(value)        (NVMCTRL_CTRLA_CACHEDIS0_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_CACHEDIS0_Pos)) /* Assigment of value for CACHEDIS0 in the NVMCTRL_CTRLA register */
69 #define NVMCTRL_CTRLA_CACHEDIS1_Pos           _UINT16_(15)                                         /* (NVMCTRL_CTRLA) AHB1 Cache Disable Position */
70 #define NVMCTRL_CTRLA_CACHEDIS1_Msk           (_UINT16_(0x1) << NVMCTRL_CTRLA_CACHEDIS1_Pos)       /* (NVMCTRL_CTRLA) AHB1 Cache Disable Mask */
71 #define NVMCTRL_CTRLA_CACHEDIS1(value)        (NVMCTRL_CTRLA_CACHEDIS1_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_CACHEDIS1_Pos)) /* Assigment of value for CACHEDIS1 in the NVMCTRL_CTRLA register */
72 #define NVMCTRL_CTRLA_Msk                     _UINT16_(0xFFFC)                                     /* (NVMCTRL_CTRLA) Register Mask  */
73 
74 #define NVMCTRL_CTRLA_AHBNS_Pos               _UINT16_(12)                                         /* (NVMCTRL_CTRLA Position) Force AHBx access to NONSEQ, burst transfers are continuously rearbitrated */
75 #define NVMCTRL_CTRLA_AHBNS_Msk               (_UINT16_(0x3) << NVMCTRL_CTRLA_AHBNS_Pos)           /* (NVMCTRL_CTRLA Mask) AHBNS */
76 #define NVMCTRL_CTRLA_AHBNS(value)            (NVMCTRL_CTRLA_AHBNS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_AHBNS_Pos))
77 #define NVMCTRL_CTRLA_CACHEDIS_Pos            _UINT16_(14)                                         /* (NVMCTRL_CTRLA Position) AHBx Cache Disable */
78 #define NVMCTRL_CTRLA_CACHEDIS_Msk            (_UINT16_(0x3) << NVMCTRL_CTRLA_CACHEDIS_Pos)        /* (NVMCTRL_CTRLA Mask) CACHEDIS */
79 #define NVMCTRL_CTRLA_CACHEDIS(value)         (NVMCTRL_CTRLA_CACHEDIS_Msk & (_UINT16_(value) << NVMCTRL_CTRLA_CACHEDIS_Pos))
80 
81 /* -------- NVMCTRL_CTRLB : (NVMCTRL Offset: 0x04) ( /W 16) Control B -------- */
82 #define NVMCTRL_CTRLB_RESETVALUE              _UINT16_(0x00)                                       /*  (NVMCTRL_CTRLB) Control B  Reset Value */
83 
84 #define NVMCTRL_CTRLB_CMD_Pos                 _UINT16_(0)                                          /* (NVMCTRL_CTRLB) Command Position */
85 #define NVMCTRL_CTRLB_CMD_Msk                 (_UINT16_(0x7F) << NVMCTRL_CTRLB_CMD_Pos)            /* (NVMCTRL_CTRLB) Command Mask */
86 #define NVMCTRL_CTRLB_CMD(value)              (NVMCTRL_CTRLB_CMD_Msk & (_UINT16_(value) << NVMCTRL_CTRLB_CMD_Pos)) /* Assigment of value for CMD in the NVMCTRL_CTRLB register */
87 #define   NVMCTRL_CTRLB_CMD_EP_Val            _UINT16_(0x0)                                        /* (NVMCTRL_CTRLB) Erase Page - Only supported in the USER and AUX pages.  */
88 #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  */
89 #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  */
90 #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.  */
91 #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  */
92 #define   NVMCTRL_CTRLB_CMD_LR_Val            _UINT16_(0x11)                                       /* (NVMCTRL_CTRLB) Lock Region - Locks the region containing the address location in the ADDR register.  */
93 #define   NVMCTRL_CTRLB_CMD_UR_Val            _UINT16_(0x12)                                       /* (NVMCTRL_CTRLB) Unlock Region - Unlocks the region containing the address location in the ADDR register.  */
94 #define   NVMCTRL_CTRLB_CMD_SPRM_Val          _UINT16_(0x13)                                       /* (NVMCTRL_CTRLB) Sets the power reduction mode.  */
95 #define   NVMCTRL_CTRLB_CMD_CPRM_Val          _UINT16_(0x14)                                       /* (NVMCTRL_CTRLB) Clears the power reduction mode.  */
96 #define   NVMCTRL_CTRLB_CMD_PBC_Val           _UINT16_(0x15)                                       /* (NVMCTRL_CTRLB) Page Buffer Clear - Clears the page buffer.  */
97 #define   NVMCTRL_CTRLB_CMD_SSB_Val           _UINT16_(0x16)                                       /* (NVMCTRL_CTRLB) Set Security Bit  */
98 #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  */
99 #define   NVMCTRL_CTRLB_CMD_CELCK_Val         _UINT16_(0x18)                                       /* (NVMCTRL_CTRLB) Chip Erase Lock - DSU.CE command is not available  */
100 #define   NVMCTRL_CTRLB_CMD_CEULCK_Val        _UINT16_(0x19)                                       /* (NVMCTRL_CTRLB) Chip Erase Unlock - DSU.CE command is available  */
101 #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  */
102 #define   NVMCTRL_CTRLB_CMD_CBPDIS_Val        _UINT16_(0x1B)                                       /* (NVMCTRL_CTRLB) Clears STATUS.BPDIS, Boot loader protection is not discarded  */
103 #define   NVMCTRL_CTRLB_CMD_SCEHL_Val         _UINT16_(0x1C)                                       /* (NVMCTRL_CTRLB) Set Chip Erase Hard Lock - DSU.CTRL.CE command is not available  */
104 #define   NVMCTRL_CTRLB_CMD_SBPHL_Val         _UINT16_(0x1D)                                       /* (NVMCTRL_CTRLB) Set Boot Protect Hard Lock  */
105 #define   NVMCTRL_CTRLB_CMD_ASEES0_Val        _UINT16_(0x30)                                       /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 0, deactivate Sector 1  */
106 #define   NVMCTRL_CTRLB_CMD_ASEES1_Val        _UINT16_(0x31)                                       /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 1, deactivate Sector 0  */
107 #define   NVMCTRL_CTRLB_CMD_SEERALOC_Val      _UINT16_(0x32)                                       /* (NVMCTRL_CTRLB) Starts SmartEEPROM sector reallocation algorithm  */
108 #define   NVMCTRL_CTRLB_CMD_LSEE_Val          _UINT16_(0x34)                                       /* (NVMCTRL_CTRLB) Lock access to SmartEEPROM data from any mean  */
109 #define   NVMCTRL_CTRLB_CMD_USEE_Val          _UINT16_(0x35)                                       /* (NVMCTRL_CTRLB) Unlock access to SmartEEPROM data  */
110 #define   NVMCTRL_CTRLB_CMD_LSEER_Val         _UINT16_(0x36)                                       /* (NVMCTRL_CTRLB) Lock access to the SmartEEPROM Register Address Space (above 64KB)  */
111 #define   NVMCTRL_CTRLB_CMD_USEER_Val         _UINT16_(0x37)                                       /* (NVMCTRL_CTRLB) Unlock access to the SmartEEPROM Register Address Space (above 64KB)  */
112 #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  */
113 #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  */
114 #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  */
115 #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  */
116 #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  */
117 #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  */
118 #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  */
119 #define NVMCTRL_CTRLB_CMD_SPRM                (NVMCTRL_CTRLB_CMD_SPRM_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Sets the power reduction mode. Position  */
120 #define NVMCTRL_CTRLB_CMD_CPRM                (NVMCTRL_CTRLB_CMD_CPRM_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Clears the power reduction mode. Position  */
121 #define NVMCTRL_CTRLB_CMD_PBC                 (NVMCTRL_CTRLB_CMD_PBC_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Page Buffer Clear - Clears the page buffer. Position  */
122 #define NVMCTRL_CTRLB_CMD_SSB                 (NVMCTRL_CTRLB_CMD_SSB_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Set Security Bit Position  */
123 #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  */
124 #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  */
125 #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  */
126 #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  */
127 #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  */
128 #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  */
129 #define NVMCTRL_CTRLB_CMD_SBPHL               (NVMCTRL_CTRLB_CMD_SBPHL_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Set Boot Protect Hard Lock Position  */
130 #define NVMCTRL_CTRLB_CMD_ASEES0              (NVMCTRL_CTRLB_CMD_ASEES0_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 0, deactivate Sector 1 Position  */
131 #define NVMCTRL_CTRLB_CMD_ASEES1              (NVMCTRL_CTRLB_CMD_ASEES1_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Activate SmartEEPROM Sector 1, deactivate Sector 0 Position  */
132 #define NVMCTRL_CTRLB_CMD_SEERALOC            (NVMCTRL_CTRLB_CMD_SEERALOC_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Starts SmartEEPROM sector reallocation algorithm Position  */
133 #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  */
134 #define NVMCTRL_CTRLB_CMD_USEE                (NVMCTRL_CTRLB_CMD_USEE_Val << NVMCTRL_CTRLB_CMD_Pos) /* (NVMCTRL_CTRLB) Unlock access to SmartEEPROM data Position  */
135 #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  */
136 #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  */
137 #define NVMCTRL_CTRLB_CMDEX_Pos               _UINT16_(8)                                          /* (NVMCTRL_CTRLB) Command Execution Position */
138 #define NVMCTRL_CTRLB_CMDEX_Msk               (_UINT16_(0xFF) << NVMCTRL_CTRLB_CMDEX_Pos)          /* (NVMCTRL_CTRLB) Command Execution Mask */
139 #define NVMCTRL_CTRLB_CMDEX(value)            (NVMCTRL_CTRLB_CMDEX_Msk & (_UINT16_(value) << NVMCTRL_CTRLB_CMDEX_Pos)) /* Assigment of value for CMDEX in the NVMCTRL_CTRLB register */
140 #define   NVMCTRL_CTRLB_CMDEX_KEY_Val         _UINT16_(0xA5)                                       /* (NVMCTRL_CTRLB) Execution Key  */
141 #define NVMCTRL_CTRLB_CMDEX_KEY               (NVMCTRL_CTRLB_CMDEX_KEY_Val << NVMCTRL_CTRLB_CMDEX_Pos) /* (NVMCTRL_CTRLB) Execution Key Position  */
142 #define NVMCTRL_CTRLB_Msk                     _UINT16_(0xFF7F)                                     /* (NVMCTRL_CTRLB) Register Mask  */
143 
144 
145 /* -------- NVMCTRL_PARAM : (NVMCTRL Offset: 0x08) ( R/ 32) NVM Parameter -------- */
146 #define NVMCTRL_PARAM_RESETVALUE              _UINT32_(0x60000)                                    /*  (NVMCTRL_PARAM) NVM Parameter  Reset Value */
147 
148 #define NVMCTRL_PARAM_NVMP_Pos                _UINT32_(0)                                          /* (NVMCTRL_PARAM) NVM Pages Position */
149 #define NVMCTRL_PARAM_NVMP_Msk                (_UINT32_(0xFFFF) << NVMCTRL_PARAM_NVMP_Pos)         /* (NVMCTRL_PARAM) NVM Pages Mask */
150 #define NVMCTRL_PARAM_NVMP(value)             (NVMCTRL_PARAM_NVMP_Msk & (_UINT32_(value) << NVMCTRL_PARAM_NVMP_Pos)) /* Assigment of value for NVMP in the NVMCTRL_PARAM register */
151 #define NVMCTRL_PARAM_PSZ_Pos                 _UINT32_(16)                                         /* (NVMCTRL_PARAM) Page Size Position */
152 #define NVMCTRL_PARAM_PSZ_Msk                 (_UINT32_(0x7) << NVMCTRL_PARAM_PSZ_Pos)             /* (NVMCTRL_PARAM) Page Size Mask */
153 #define NVMCTRL_PARAM_PSZ(value)              (NVMCTRL_PARAM_PSZ_Msk & (_UINT32_(value) << NVMCTRL_PARAM_PSZ_Pos)) /* Assigment of value for PSZ in the NVMCTRL_PARAM register */
154 #define   NVMCTRL_PARAM_PSZ_8_Val             _UINT32_(0x0)                                        /* (NVMCTRL_PARAM) 8 bytes  */
155 #define   NVMCTRL_PARAM_PSZ_16_Val            _UINT32_(0x1)                                        /* (NVMCTRL_PARAM) 16 bytes  */
156 #define   NVMCTRL_PARAM_PSZ_32_Val            _UINT32_(0x2)                                        /* (NVMCTRL_PARAM) 32 bytes  */
157 #define   NVMCTRL_PARAM_PSZ_64_Val            _UINT32_(0x3)                                        /* (NVMCTRL_PARAM) 64 bytes  */
158 #define   NVMCTRL_PARAM_PSZ_128_Val           _UINT32_(0x4)                                        /* (NVMCTRL_PARAM) 128 bytes  */
159 #define   NVMCTRL_PARAM_PSZ_256_Val           _UINT32_(0x5)                                        /* (NVMCTRL_PARAM) 256 bytes  */
160 #define   NVMCTRL_PARAM_PSZ_512_Val           _UINT32_(0x6)                                        /* (NVMCTRL_PARAM) 512 bytes  */
161 #define   NVMCTRL_PARAM_PSZ_1024_Val          _UINT32_(0x7)                                        /* (NVMCTRL_PARAM) 1024 bytes  */
162 #define NVMCTRL_PARAM_PSZ_8                   (NVMCTRL_PARAM_PSZ_8_Val << NVMCTRL_PARAM_PSZ_Pos)   /* (NVMCTRL_PARAM) 8 bytes Position  */
163 #define NVMCTRL_PARAM_PSZ_16                  (NVMCTRL_PARAM_PSZ_16_Val << NVMCTRL_PARAM_PSZ_Pos)  /* (NVMCTRL_PARAM) 16 bytes Position  */
164 #define NVMCTRL_PARAM_PSZ_32                  (NVMCTRL_PARAM_PSZ_32_Val << NVMCTRL_PARAM_PSZ_Pos)  /* (NVMCTRL_PARAM) 32 bytes Position  */
165 #define NVMCTRL_PARAM_PSZ_64                  (NVMCTRL_PARAM_PSZ_64_Val << NVMCTRL_PARAM_PSZ_Pos)  /* (NVMCTRL_PARAM) 64 bytes Position  */
166 #define NVMCTRL_PARAM_PSZ_128                 (NVMCTRL_PARAM_PSZ_128_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 128 bytes Position  */
167 #define NVMCTRL_PARAM_PSZ_256                 (NVMCTRL_PARAM_PSZ_256_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 256 bytes Position  */
168 #define NVMCTRL_PARAM_PSZ_512                 (NVMCTRL_PARAM_PSZ_512_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 512 bytes Position  */
169 #define NVMCTRL_PARAM_PSZ_1024                (NVMCTRL_PARAM_PSZ_1024_Val << NVMCTRL_PARAM_PSZ_Pos) /* (NVMCTRL_PARAM) 1024 bytes Position  */
170 #define NVMCTRL_PARAM_SEE_Pos                 _UINT32_(31)                                         /* (NVMCTRL_PARAM) SmartEEPROM Supported Position */
171 #define NVMCTRL_PARAM_SEE_Msk                 (_UINT32_(0x1) << NVMCTRL_PARAM_SEE_Pos)             /* (NVMCTRL_PARAM) SmartEEPROM Supported Mask */
172 #define NVMCTRL_PARAM_SEE(value)              (NVMCTRL_PARAM_SEE_Msk & (_UINT32_(value) << NVMCTRL_PARAM_SEE_Pos)) /* Assigment of value for SEE in the NVMCTRL_PARAM register */
173 #define   NVMCTRL_PARAM_SEE_SMARTEEPROM_Val   _UINT32_(0x1)                                        /* (NVMCTRL_PARAM) SmartEEPROM is supported  */
174 #define   NVMCTRL_PARAM_SEE_NOSMARTEEPROM_Val _UINT32_(0x0)                                        /* (NVMCTRL_PARAM) No SmartEEPROM support  */
175 #define NVMCTRL_PARAM_SEE_SMARTEEPROM         (NVMCTRL_PARAM_SEE_SMARTEEPROM_Val << NVMCTRL_PARAM_SEE_Pos) /* (NVMCTRL_PARAM) SmartEEPROM is supported Position  */
176 #define NVMCTRL_PARAM_SEE_NOSMARTEEPROM       (NVMCTRL_PARAM_SEE_NOSMARTEEPROM_Val << NVMCTRL_PARAM_SEE_Pos) /* (NVMCTRL_PARAM) No SmartEEPROM support Position  */
177 #define NVMCTRL_PARAM_Msk                     _UINT32_(0x8007FFFF)                                 /* (NVMCTRL_PARAM) Register Mask  */
178 
179 
180 /* -------- NVMCTRL_INTENCLR : (NVMCTRL Offset: 0x0C) (R/W 16) Interrupt Enable Clear -------- */
181 #define NVMCTRL_INTENCLR_RESETVALUE           _UINT16_(0x00)                                       /*  (NVMCTRL_INTENCLR) Interrupt Enable Clear  Reset Value */
182 
183 #define NVMCTRL_INTENCLR_DONE_Pos             _UINT16_(0)                                          /* (NVMCTRL_INTENCLR) Command Done Interrupt Clear Position */
184 #define NVMCTRL_INTENCLR_DONE_Msk             (_UINT16_(0x1) << NVMCTRL_INTENCLR_DONE_Pos)         /* (NVMCTRL_INTENCLR) Command Done Interrupt Clear Mask */
185 #define NVMCTRL_INTENCLR_DONE(value)          (NVMCTRL_INTENCLR_DONE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_DONE_Pos)) /* Assigment of value for DONE in the NVMCTRL_INTENCLR register */
186 #define NVMCTRL_INTENCLR_ADDRE_Pos            _UINT16_(1)                                          /* (NVMCTRL_INTENCLR) Address Error Position */
187 #define NVMCTRL_INTENCLR_ADDRE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_ADDRE_Pos)        /* (NVMCTRL_INTENCLR) Address Error Mask */
188 #define NVMCTRL_INTENCLR_ADDRE(value)         (NVMCTRL_INTENCLR_ADDRE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_ADDRE_Pos)) /* Assigment of value for ADDRE in the NVMCTRL_INTENCLR register */
189 #define NVMCTRL_INTENCLR_PROGE_Pos            _UINT16_(2)                                          /* (NVMCTRL_INTENCLR) Programming Error Interrupt Clear Position */
190 #define NVMCTRL_INTENCLR_PROGE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_PROGE_Pos)        /* (NVMCTRL_INTENCLR) Programming Error Interrupt Clear Mask */
191 #define NVMCTRL_INTENCLR_PROGE(value)         (NVMCTRL_INTENCLR_PROGE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_PROGE_Pos)) /* Assigment of value for PROGE in the NVMCTRL_INTENCLR register */
192 #define NVMCTRL_INTENCLR_LOCKE_Pos            _UINT16_(3)                                          /* (NVMCTRL_INTENCLR) Lock Error Interrupt Clear Position */
193 #define NVMCTRL_INTENCLR_LOCKE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_LOCKE_Pos)        /* (NVMCTRL_INTENCLR) Lock Error Interrupt Clear Mask */
194 #define NVMCTRL_INTENCLR_LOCKE(value)         (NVMCTRL_INTENCLR_LOCKE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_LOCKE_Pos)) /* Assigment of value for LOCKE in the NVMCTRL_INTENCLR register */
195 #define NVMCTRL_INTENCLR_ECCSE_Pos            _UINT16_(4)                                          /* (NVMCTRL_INTENCLR) ECC Single Error Interrupt Clear Position */
196 #define NVMCTRL_INTENCLR_ECCSE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_ECCSE_Pos)        /* (NVMCTRL_INTENCLR) ECC Single Error Interrupt Clear Mask */
197 #define NVMCTRL_INTENCLR_ECCSE(value)         (NVMCTRL_INTENCLR_ECCSE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_ECCSE_Pos)) /* Assigment of value for ECCSE in the NVMCTRL_INTENCLR register */
198 #define NVMCTRL_INTENCLR_ECCDE_Pos            _UINT16_(5)                                          /* (NVMCTRL_INTENCLR) ECC Dual Error Interrupt Clear Position */
199 #define NVMCTRL_INTENCLR_ECCDE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENCLR_ECCDE_Pos)        /* (NVMCTRL_INTENCLR) ECC Dual Error Interrupt Clear Mask */
200 #define NVMCTRL_INTENCLR_ECCDE(value)         (NVMCTRL_INTENCLR_ECCDE_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_ECCDE_Pos)) /* Assigment of value for ECCDE in the NVMCTRL_INTENCLR register */
201 #define NVMCTRL_INTENCLR_NVME_Pos             _UINT16_(6)                                          /* (NVMCTRL_INTENCLR) NVM Error Interrupt Clear Position */
202 #define NVMCTRL_INTENCLR_NVME_Msk             (_UINT16_(0x1) << NVMCTRL_INTENCLR_NVME_Pos)         /* (NVMCTRL_INTENCLR) NVM Error Interrupt Clear Mask */
203 #define NVMCTRL_INTENCLR_NVME(value)          (NVMCTRL_INTENCLR_NVME_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_NVME_Pos)) /* Assigment of value for NVME in the NVMCTRL_INTENCLR register */
204 #define NVMCTRL_INTENCLR_SUSP_Pos             _UINT16_(7)                                          /* (NVMCTRL_INTENCLR) Suspended Write Or Erase Interrupt Clear Position */
205 #define NVMCTRL_INTENCLR_SUSP_Msk             (_UINT16_(0x1) << NVMCTRL_INTENCLR_SUSP_Pos)         /* (NVMCTRL_INTENCLR) Suspended Write Or Erase Interrupt Clear Mask */
206 #define NVMCTRL_INTENCLR_SUSP(value)          (NVMCTRL_INTENCLR_SUSP_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SUSP_Pos)) /* Assigment of value for SUSP in the NVMCTRL_INTENCLR register */
207 #define NVMCTRL_INTENCLR_SEESFULL_Pos         _UINT16_(8)                                          /* (NVMCTRL_INTENCLR) Active SEES Full Interrupt Clear Position */
208 #define NVMCTRL_INTENCLR_SEESFULL_Msk         (_UINT16_(0x1) << NVMCTRL_INTENCLR_SEESFULL_Pos)     /* (NVMCTRL_INTENCLR) Active SEES Full Interrupt Clear Mask */
209 #define NVMCTRL_INTENCLR_SEESFULL(value)      (NVMCTRL_INTENCLR_SEESFULL_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SEESFULL_Pos)) /* Assigment of value for SEESFULL in the NVMCTRL_INTENCLR register */
210 #define NVMCTRL_INTENCLR_SEESOVF_Pos          _UINT16_(9)                                          /* (NVMCTRL_INTENCLR) Active SEES Overflow Interrupt Clear Position */
211 #define NVMCTRL_INTENCLR_SEESOVF_Msk          (_UINT16_(0x1) << NVMCTRL_INTENCLR_SEESOVF_Pos)      /* (NVMCTRL_INTENCLR) Active SEES Overflow Interrupt Clear Mask */
212 #define NVMCTRL_INTENCLR_SEESOVF(value)       (NVMCTRL_INTENCLR_SEESOVF_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SEESOVF_Pos)) /* Assigment of value for SEESOVF in the NVMCTRL_INTENCLR register */
213 #define NVMCTRL_INTENCLR_SEEWRC_Pos           _UINT16_(10)                                         /* (NVMCTRL_INTENCLR) SEE Write Completed Interrupt Clear Position */
214 #define NVMCTRL_INTENCLR_SEEWRC_Msk           (_UINT16_(0x1) << NVMCTRL_INTENCLR_SEEWRC_Pos)       /* (NVMCTRL_INTENCLR) SEE Write Completed Interrupt Clear Mask */
215 #define NVMCTRL_INTENCLR_SEEWRC(value)        (NVMCTRL_INTENCLR_SEEWRC_Msk & (_UINT16_(value) << NVMCTRL_INTENCLR_SEEWRC_Pos)) /* Assigment of value for SEEWRC in the NVMCTRL_INTENCLR register */
216 #define NVMCTRL_INTENCLR_Msk                  _UINT16_(0x07FF)                                     /* (NVMCTRL_INTENCLR) Register Mask  */
217 
218 
219 /* -------- NVMCTRL_INTENSET : (NVMCTRL Offset: 0x0E) (R/W 16) Interrupt Enable Set -------- */
220 #define NVMCTRL_INTENSET_RESETVALUE           _UINT16_(0x00)                                       /*  (NVMCTRL_INTENSET) Interrupt Enable Set  Reset Value */
221 
222 #define NVMCTRL_INTENSET_DONE_Pos             _UINT16_(0)                                          /* (NVMCTRL_INTENSET) Command Done Interrupt Enable Position */
223 #define NVMCTRL_INTENSET_DONE_Msk             (_UINT16_(0x1) << NVMCTRL_INTENSET_DONE_Pos)         /* (NVMCTRL_INTENSET) Command Done Interrupt Enable Mask */
224 #define NVMCTRL_INTENSET_DONE(value)          (NVMCTRL_INTENSET_DONE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_DONE_Pos)) /* Assigment of value for DONE in the NVMCTRL_INTENSET register */
225 #define NVMCTRL_INTENSET_ADDRE_Pos            _UINT16_(1)                                          /* (NVMCTRL_INTENSET) Address Error Interrupt Enable Position */
226 #define NVMCTRL_INTENSET_ADDRE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_ADDRE_Pos)        /* (NVMCTRL_INTENSET) Address Error Interrupt Enable Mask */
227 #define NVMCTRL_INTENSET_ADDRE(value)         (NVMCTRL_INTENSET_ADDRE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_ADDRE_Pos)) /* Assigment of value for ADDRE in the NVMCTRL_INTENSET register */
228 #define NVMCTRL_INTENSET_PROGE_Pos            _UINT16_(2)                                          /* (NVMCTRL_INTENSET) Programming Error Interrupt Enable Position */
229 #define NVMCTRL_INTENSET_PROGE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_PROGE_Pos)        /* (NVMCTRL_INTENSET) Programming Error Interrupt Enable Mask */
230 #define NVMCTRL_INTENSET_PROGE(value)         (NVMCTRL_INTENSET_PROGE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_PROGE_Pos)) /* Assigment of value for PROGE in the NVMCTRL_INTENSET register */
231 #define NVMCTRL_INTENSET_LOCKE_Pos            _UINT16_(3)                                          /* (NVMCTRL_INTENSET) Lock Error Interrupt Enable Position */
232 #define NVMCTRL_INTENSET_LOCKE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_LOCKE_Pos)        /* (NVMCTRL_INTENSET) Lock Error Interrupt Enable Mask */
233 #define NVMCTRL_INTENSET_LOCKE(value)         (NVMCTRL_INTENSET_LOCKE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_LOCKE_Pos)) /* Assigment of value for LOCKE in the NVMCTRL_INTENSET register */
234 #define NVMCTRL_INTENSET_ECCSE_Pos            _UINT16_(4)                                          /* (NVMCTRL_INTENSET) ECC Single Error Interrupt Enable Position */
235 #define NVMCTRL_INTENSET_ECCSE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_ECCSE_Pos)        /* (NVMCTRL_INTENSET) ECC Single Error Interrupt Enable Mask */
236 #define NVMCTRL_INTENSET_ECCSE(value)         (NVMCTRL_INTENSET_ECCSE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_ECCSE_Pos)) /* Assigment of value for ECCSE in the NVMCTRL_INTENSET register */
237 #define NVMCTRL_INTENSET_ECCDE_Pos            _UINT16_(5)                                          /* (NVMCTRL_INTENSET) ECC Dual Error Interrupt Enable Position */
238 #define NVMCTRL_INTENSET_ECCDE_Msk            (_UINT16_(0x1) << NVMCTRL_INTENSET_ECCDE_Pos)        /* (NVMCTRL_INTENSET) ECC Dual Error Interrupt Enable Mask */
239 #define NVMCTRL_INTENSET_ECCDE(value)         (NVMCTRL_INTENSET_ECCDE_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_ECCDE_Pos)) /* Assigment of value for ECCDE in the NVMCTRL_INTENSET register */
240 #define NVMCTRL_INTENSET_NVME_Pos             _UINT16_(6)                                          /* (NVMCTRL_INTENSET) NVM Error Interrupt Enable Position */
241 #define NVMCTRL_INTENSET_NVME_Msk             (_UINT16_(0x1) << NVMCTRL_INTENSET_NVME_Pos)         /* (NVMCTRL_INTENSET) NVM Error Interrupt Enable Mask */
242 #define NVMCTRL_INTENSET_NVME(value)          (NVMCTRL_INTENSET_NVME_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_NVME_Pos)) /* Assigment of value for NVME in the NVMCTRL_INTENSET register */
243 #define NVMCTRL_INTENSET_SUSP_Pos             _UINT16_(7)                                          /* (NVMCTRL_INTENSET) Suspended Write Or Erase  Interrupt Enable Position */
244 #define NVMCTRL_INTENSET_SUSP_Msk             (_UINT16_(0x1) << NVMCTRL_INTENSET_SUSP_Pos)         /* (NVMCTRL_INTENSET) Suspended Write Or Erase  Interrupt Enable Mask */
245 #define NVMCTRL_INTENSET_SUSP(value)          (NVMCTRL_INTENSET_SUSP_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SUSP_Pos)) /* Assigment of value for SUSP in the NVMCTRL_INTENSET register */
246 #define NVMCTRL_INTENSET_SEESFULL_Pos         _UINT16_(8)                                          /* (NVMCTRL_INTENSET) Active SEES Full Interrupt Enable Position */
247 #define NVMCTRL_INTENSET_SEESFULL_Msk         (_UINT16_(0x1) << NVMCTRL_INTENSET_SEESFULL_Pos)     /* (NVMCTRL_INTENSET) Active SEES Full Interrupt Enable Mask */
248 #define NVMCTRL_INTENSET_SEESFULL(value)      (NVMCTRL_INTENSET_SEESFULL_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SEESFULL_Pos)) /* Assigment of value for SEESFULL in the NVMCTRL_INTENSET register */
249 #define NVMCTRL_INTENSET_SEESOVF_Pos          _UINT16_(9)                                          /* (NVMCTRL_INTENSET) Active SEES Overflow Interrupt Enable Position */
250 #define NVMCTRL_INTENSET_SEESOVF_Msk          (_UINT16_(0x1) << NVMCTRL_INTENSET_SEESOVF_Pos)      /* (NVMCTRL_INTENSET) Active SEES Overflow Interrupt Enable Mask */
251 #define NVMCTRL_INTENSET_SEESOVF(value)       (NVMCTRL_INTENSET_SEESOVF_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SEESOVF_Pos)) /* Assigment of value for SEESOVF in the NVMCTRL_INTENSET register */
252 #define NVMCTRL_INTENSET_SEEWRC_Pos           _UINT16_(10)                                         /* (NVMCTRL_INTENSET) SEE Write Completed Interrupt Enable Position */
253 #define NVMCTRL_INTENSET_SEEWRC_Msk           (_UINT16_(0x1) << NVMCTRL_INTENSET_SEEWRC_Pos)       /* (NVMCTRL_INTENSET) SEE Write Completed Interrupt Enable Mask */
254 #define NVMCTRL_INTENSET_SEEWRC(value)        (NVMCTRL_INTENSET_SEEWRC_Msk & (_UINT16_(value) << NVMCTRL_INTENSET_SEEWRC_Pos)) /* Assigment of value for SEEWRC in the NVMCTRL_INTENSET register */
255 #define NVMCTRL_INTENSET_Msk                  _UINT16_(0x07FF)                                     /* (NVMCTRL_INTENSET) Register Mask  */
256 
257 
258 /* -------- NVMCTRL_INTFLAG : (NVMCTRL Offset: 0x10) (R/W 16) Interrupt Flag Status and Clear -------- */
259 #define NVMCTRL_INTFLAG_RESETVALUE            _UINT16_(0x00)                                       /*  (NVMCTRL_INTFLAG) Interrupt Flag Status and Clear  Reset Value */
260 
261 #define NVMCTRL_INTFLAG_DONE_Pos              _UINT16_(0)                                          /* (NVMCTRL_INTFLAG) Command Done Position */
262 #define NVMCTRL_INTFLAG_DONE_Msk              (_UINT16_(0x1) << NVMCTRL_INTFLAG_DONE_Pos)          /* (NVMCTRL_INTFLAG) Command Done Mask */
263 #define NVMCTRL_INTFLAG_DONE(value)           (NVMCTRL_INTFLAG_DONE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_DONE_Pos)) /* Assigment of value for DONE in the NVMCTRL_INTFLAG register */
264 #define NVMCTRL_INTFLAG_ADDRE_Pos             _UINT16_(1)                                          /* (NVMCTRL_INTFLAG) Address Error Position */
265 #define NVMCTRL_INTFLAG_ADDRE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_ADDRE_Pos)         /* (NVMCTRL_INTFLAG) Address Error Mask */
266 #define NVMCTRL_INTFLAG_ADDRE(value)          (NVMCTRL_INTFLAG_ADDRE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_ADDRE_Pos)) /* Assigment of value for ADDRE in the NVMCTRL_INTFLAG register */
267 #define NVMCTRL_INTFLAG_PROGE_Pos             _UINT16_(2)                                          /* (NVMCTRL_INTFLAG) Programming Error Position */
268 #define NVMCTRL_INTFLAG_PROGE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_PROGE_Pos)         /* (NVMCTRL_INTFLAG) Programming Error Mask */
269 #define NVMCTRL_INTFLAG_PROGE(value)          (NVMCTRL_INTFLAG_PROGE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_PROGE_Pos)) /* Assigment of value for PROGE in the NVMCTRL_INTFLAG register */
270 #define NVMCTRL_INTFLAG_LOCKE_Pos             _UINT16_(3)                                          /* (NVMCTRL_INTFLAG) Lock Error Position */
271 #define NVMCTRL_INTFLAG_LOCKE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_LOCKE_Pos)         /* (NVMCTRL_INTFLAG) Lock Error Mask */
272 #define NVMCTRL_INTFLAG_LOCKE(value)          (NVMCTRL_INTFLAG_LOCKE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_LOCKE_Pos)) /* Assigment of value for LOCKE in the NVMCTRL_INTFLAG register */
273 #define NVMCTRL_INTFLAG_ECCSE_Pos             _UINT16_(4)                                          /* (NVMCTRL_INTFLAG) ECC Single Error Position */
274 #define NVMCTRL_INTFLAG_ECCSE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_ECCSE_Pos)         /* (NVMCTRL_INTFLAG) ECC Single Error Mask */
275 #define NVMCTRL_INTFLAG_ECCSE(value)          (NVMCTRL_INTFLAG_ECCSE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_ECCSE_Pos)) /* Assigment of value for ECCSE in the NVMCTRL_INTFLAG register */
276 #define NVMCTRL_INTFLAG_ECCDE_Pos             _UINT16_(5)                                          /* (NVMCTRL_INTFLAG) ECC Dual Error Position */
277 #define NVMCTRL_INTFLAG_ECCDE_Msk             (_UINT16_(0x1) << NVMCTRL_INTFLAG_ECCDE_Pos)         /* (NVMCTRL_INTFLAG) ECC Dual Error Mask */
278 #define NVMCTRL_INTFLAG_ECCDE(value)          (NVMCTRL_INTFLAG_ECCDE_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_ECCDE_Pos)) /* Assigment of value for ECCDE in the NVMCTRL_INTFLAG register */
279 #define NVMCTRL_INTFLAG_NVME_Pos              _UINT16_(6)                                          /* (NVMCTRL_INTFLAG) NVM Error Position */
280 #define NVMCTRL_INTFLAG_NVME_Msk              (_UINT16_(0x1) << NVMCTRL_INTFLAG_NVME_Pos)          /* (NVMCTRL_INTFLAG) NVM Error Mask */
281 #define NVMCTRL_INTFLAG_NVME(value)           (NVMCTRL_INTFLAG_NVME_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_NVME_Pos)) /* Assigment of value for NVME in the NVMCTRL_INTFLAG register */
282 #define NVMCTRL_INTFLAG_SUSP_Pos              _UINT16_(7)                                          /* (NVMCTRL_INTFLAG) Suspended Write Or Erase Operation Position */
283 #define NVMCTRL_INTFLAG_SUSP_Msk              (_UINT16_(0x1) << NVMCTRL_INTFLAG_SUSP_Pos)          /* (NVMCTRL_INTFLAG) Suspended Write Or Erase Operation Mask */
284 #define NVMCTRL_INTFLAG_SUSP(value)           (NVMCTRL_INTFLAG_SUSP_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SUSP_Pos)) /* Assigment of value for SUSP in the NVMCTRL_INTFLAG register */
285 #define NVMCTRL_INTFLAG_SEESFULL_Pos          _UINT16_(8)                                          /* (NVMCTRL_INTFLAG) Active SEES Full Position */
286 #define NVMCTRL_INTFLAG_SEESFULL_Msk          (_UINT16_(0x1) << NVMCTRL_INTFLAG_SEESFULL_Pos)      /* (NVMCTRL_INTFLAG) Active SEES Full Mask */
287 #define NVMCTRL_INTFLAG_SEESFULL(value)       (NVMCTRL_INTFLAG_SEESFULL_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SEESFULL_Pos)) /* Assigment of value for SEESFULL in the NVMCTRL_INTFLAG register */
288 #define NVMCTRL_INTFLAG_SEESOVF_Pos           _UINT16_(9)                                          /* (NVMCTRL_INTFLAG) Active SEES Overflow Position */
289 #define NVMCTRL_INTFLAG_SEESOVF_Msk           (_UINT16_(0x1) << NVMCTRL_INTFLAG_SEESOVF_Pos)       /* (NVMCTRL_INTFLAG) Active SEES Overflow Mask */
290 #define NVMCTRL_INTFLAG_SEESOVF(value)        (NVMCTRL_INTFLAG_SEESOVF_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SEESOVF_Pos)) /* Assigment of value for SEESOVF in the NVMCTRL_INTFLAG register */
291 #define NVMCTRL_INTFLAG_SEEWRC_Pos            _UINT16_(10)                                         /* (NVMCTRL_INTFLAG) SEE Write Completed Position */
292 #define NVMCTRL_INTFLAG_SEEWRC_Msk            (_UINT16_(0x1) << NVMCTRL_INTFLAG_SEEWRC_Pos)        /* (NVMCTRL_INTFLAG) SEE Write Completed Mask */
293 #define NVMCTRL_INTFLAG_SEEWRC(value)         (NVMCTRL_INTFLAG_SEEWRC_Msk & (_UINT16_(value) << NVMCTRL_INTFLAG_SEEWRC_Pos)) /* Assigment of value for SEEWRC in the NVMCTRL_INTFLAG register */
294 #define NVMCTRL_INTFLAG_Msk                   _UINT16_(0x07FF)                                     /* (NVMCTRL_INTFLAG) Register Mask  */
295 
296 
297 /* -------- NVMCTRL_STATUS : (NVMCTRL Offset: 0x12) ( R/ 16) Status -------- */
298 #define NVMCTRL_STATUS_RESETVALUE             _UINT16_(0x00)                                       /*  (NVMCTRL_STATUS) Status  Reset Value */
299 
300 #define NVMCTRL_STATUS_READY_Pos              _UINT16_(0)                                          /* (NVMCTRL_STATUS) Ready to accept a command Position */
301 #define NVMCTRL_STATUS_READY_Msk              (_UINT16_(0x1) << NVMCTRL_STATUS_READY_Pos)          /* (NVMCTRL_STATUS) Ready to accept a command Mask */
302 #define NVMCTRL_STATUS_READY(value)           (NVMCTRL_STATUS_READY_Msk & (_UINT16_(value) << NVMCTRL_STATUS_READY_Pos)) /* Assigment of value for READY in the NVMCTRL_STATUS register */
303 #define NVMCTRL_STATUS_PRM_Pos                _UINT16_(1)                                          /* (NVMCTRL_STATUS) Power Reduction Mode Position */
304 #define NVMCTRL_STATUS_PRM_Msk                (_UINT16_(0x1) << NVMCTRL_STATUS_PRM_Pos)            /* (NVMCTRL_STATUS) Power Reduction Mode Mask */
305 #define NVMCTRL_STATUS_PRM(value)             (NVMCTRL_STATUS_PRM_Msk & (_UINT16_(value) << NVMCTRL_STATUS_PRM_Pos)) /* Assigment of value for PRM in the NVMCTRL_STATUS register */
306 #define NVMCTRL_STATUS_LOAD_Pos               _UINT16_(2)                                          /* (NVMCTRL_STATUS) NVM Page Buffer Active Loading Position */
307 #define NVMCTRL_STATUS_LOAD_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_LOAD_Pos)           /* (NVMCTRL_STATUS) NVM Page Buffer Active Loading Mask */
308 #define NVMCTRL_STATUS_LOAD(value)            (NVMCTRL_STATUS_LOAD_Msk & (_UINT16_(value) << NVMCTRL_STATUS_LOAD_Pos)) /* Assigment of value for LOAD in the NVMCTRL_STATUS register */
309 #define NVMCTRL_STATUS_SUSP_Pos               _UINT16_(3)                                          /* (NVMCTRL_STATUS) NVM Write Or Erase Operation Is Suspended Position */
310 #define NVMCTRL_STATUS_SUSP_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_SUSP_Pos)           /* (NVMCTRL_STATUS) NVM Write Or Erase Operation Is Suspended Mask */
311 #define NVMCTRL_STATUS_SUSP(value)            (NVMCTRL_STATUS_SUSP_Msk & (_UINT16_(value) << NVMCTRL_STATUS_SUSP_Pos)) /* Assigment of value for SUSP in the NVMCTRL_STATUS register */
312 #define NVMCTRL_STATUS_AFIRST_Pos             _UINT16_(4)                                          /* (NVMCTRL_STATUS) BANKA First Position */
313 #define NVMCTRL_STATUS_AFIRST_Msk             (_UINT16_(0x1) << NVMCTRL_STATUS_AFIRST_Pos)         /* (NVMCTRL_STATUS) BANKA First Mask */
314 #define NVMCTRL_STATUS_AFIRST(value)          (NVMCTRL_STATUS_AFIRST_Msk & (_UINT16_(value) << NVMCTRL_STATUS_AFIRST_Pos)) /* Assigment of value for AFIRST in the NVMCTRL_STATUS register */
315 #define NVMCTRL_STATUS_BPDIS_Pos              _UINT16_(5)                                          /* (NVMCTRL_STATUS) Boot Loader Protection Disable Position */
316 #define NVMCTRL_STATUS_BPDIS_Msk              (_UINT16_(0x1) << NVMCTRL_STATUS_BPDIS_Pos)          /* (NVMCTRL_STATUS) Boot Loader Protection Disable Mask */
317 #define NVMCTRL_STATUS_BPDIS(value)           (NVMCTRL_STATUS_BPDIS_Msk & (_UINT16_(value) << NVMCTRL_STATUS_BPDIS_Pos)) /* Assigment of value for BPDIS in the NVMCTRL_STATUS register */
318 #define NVMCTRL_STATUS_BOOTPROT_Pos           _UINT16_(8)                                          /* (NVMCTRL_STATUS) Boot Loader Protection Size Position */
319 #define NVMCTRL_STATUS_BOOTPROT_Msk           (_UINT16_(0xF) << NVMCTRL_STATUS_BOOTPROT_Pos)       /* (NVMCTRL_STATUS) Boot Loader Protection Size Mask */
320 #define NVMCTRL_STATUS_BOOTPROT(value)        (NVMCTRL_STATUS_BOOTPROT_Msk & (_UINT16_(value) << NVMCTRL_STATUS_BOOTPROT_Pos)) /* Assigment of value for BOOTPROT in the NVMCTRL_STATUS register */
321 #define   NVMCTRL_STATUS_BOOTPROT_0_Val       _UINT16_(0xF)                                        /* (NVMCTRL_STATUS) 0 kbytes  */
322 #define   NVMCTRL_STATUS_BOOTPROT_8_Val       _UINT16_(0xE)                                        /* (NVMCTRL_STATUS) 8 kbytes  */
323 #define   NVMCTRL_STATUS_BOOTPROT_16_Val      _UINT16_(0xD)                                        /* (NVMCTRL_STATUS) 16 kbytes  */
324 #define   NVMCTRL_STATUS_BOOTPROT_24_Val      _UINT16_(0xC)                                        /* (NVMCTRL_STATUS) 24 kbytes  */
325 #define   NVMCTRL_STATUS_BOOTPROT_32_Val      _UINT16_(0xB)                                        /* (NVMCTRL_STATUS) 32 kbytes  */
326 #define   NVMCTRL_STATUS_BOOTPROT_40_Val      _UINT16_(0xA)                                        /* (NVMCTRL_STATUS) 40 kbytes  */
327 #define   NVMCTRL_STATUS_BOOTPROT_48_Val      _UINT16_(0x9)                                        /* (NVMCTRL_STATUS) 48 kbytes  */
328 #define   NVMCTRL_STATUS_BOOTPROT_56_Val      _UINT16_(0x8)                                        /* (NVMCTRL_STATUS) 56 kbytes  */
329 #define   NVMCTRL_STATUS_BOOTPROT_64_Val      _UINT16_(0x7)                                        /* (NVMCTRL_STATUS) 64 kbytes  */
330 #define   NVMCTRL_STATUS_BOOTPROT_72_Val      _UINT16_(0x6)                                        /* (NVMCTRL_STATUS) 72 kbytes  */
331 #define   NVMCTRL_STATUS_BOOTPROT_80_Val      _UINT16_(0x5)                                        /* (NVMCTRL_STATUS) 80 kbytes  */
332 #define   NVMCTRL_STATUS_BOOTPROT_88_Val      _UINT16_(0x4)                                        /* (NVMCTRL_STATUS) 88 kbytes  */
333 #define   NVMCTRL_STATUS_BOOTPROT_96_Val      _UINT16_(0x3)                                        /* (NVMCTRL_STATUS) 96 kbytes  */
334 #define   NVMCTRL_STATUS_BOOTPROT_104_Val     _UINT16_(0x2)                                        /* (NVMCTRL_STATUS) 104 kbytes  */
335 #define   NVMCTRL_STATUS_BOOTPROT_112_Val     _UINT16_(0x1)                                        /* (NVMCTRL_STATUS) 112 kbytes  */
336 #define   NVMCTRL_STATUS_BOOTPROT_120_Val     _UINT16_(0x0)                                        /* (NVMCTRL_STATUS) 120 kbytes  */
337 #define NVMCTRL_STATUS_BOOTPROT_0             (NVMCTRL_STATUS_BOOTPROT_0_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 0 kbytes Position  */
338 #define NVMCTRL_STATUS_BOOTPROT_8             (NVMCTRL_STATUS_BOOTPROT_8_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 8 kbytes Position  */
339 #define NVMCTRL_STATUS_BOOTPROT_16            (NVMCTRL_STATUS_BOOTPROT_16_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 16 kbytes Position  */
340 #define NVMCTRL_STATUS_BOOTPROT_24            (NVMCTRL_STATUS_BOOTPROT_24_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 24 kbytes Position  */
341 #define NVMCTRL_STATUS_BOOTPROT_32            (NVMCTRL_STATUS_BOOTPROT_32_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 32 kbytes Position  */
342 #define NVMCTRL_STATUS_BOOTPROT_40            (NVMCTRL_STATUS_BOOTPROT_40_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 40 kbytes Position  */
343 #define NVMCTRL_STATUS_BOOTPROT_48            (NVMCTRL_STATUS_BOOTPROT_48_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 48 kbytes Position  */
344 #define NVMCTRL_STATUS_BOOTPROT_56            (NVMCTRL_STATUS_BOOTPROT_56_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 56 kbytes Position  */
345 #define NVMCTRL_STATUS_BOOTPROT_64            (NVMCTRL_STATUS_BOOTPROT_64_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 64 kbytes Position  */
346 #define NVMCTRL_STATUS_BOOTPROT_72            (NVMCTRL_STATUS_BOOTPROT_72_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 72 kbytes Position  */
347 #define NVMCTRL_STATUS_BOOTPROT_80            (NVMCTRL_STATUS_BOOTPROT_80_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 80 kbytes Position  */
348 #define NVMCTRL_STATUS_BOOTPROT_88            (NVMCTRL_STATUS_BOOTPROT_88_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 88 kbytes Position  */
349 #define NVMCTRL_STATUS_BOOTPROT_96            (NVMCTRL_STATUS_BOOTPROT_96_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 96 kbytes Position  */
350 #define NVMCTRL_STATUS_BOOTPROT_104           (NVMCTRL_STATUS_BOOTPROT_104_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 104 kbytes Position  */
351 #define NVMCTRL_STATUS_BOOTPROT_112           (NVMCTRL_STATUS_BOOTPROT_112_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 112 kbytes Position  */
352 #define NVMCTRL_STATUS_BOOTPROT_120           (NVMCTRL_STATUS_BOOTPROT_120_Val << NVMCTRL_STATUS_BOOTPROT_Pos) /* (NVMCTRL_STATUS) 120 kbytes Position  */
353 #define NVMCTRL_STATUS_DBPE_Pos               _UINT16_(12)                                         /* (NVMCTRL_STATUS) Dual Boot Protection Enable Position */
354 #define NVMCTRL_STATUS_DBPE_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_DBPE_Pos)           /* (NVMCTRL_STATUS) Dual Boot Protection Enable Mask */
355 #define NVMCTRL_STATUS_DBPE(value)            (NVMCTRL_STATUS_DBPE_Msk & (_UINT16_(value) << NVMCTRL_STATUS_DBPE_Pos)) /* Assigment of value for DBPE in the NVMCTRL_STATUS register */
356 #define NVMCTRL_STATUS_BPHL_Pos               _UINT16_(13)                                         /* (NVMCTRL_STATUS) Boot Protect Hard Lock Position */
357 #define NVMCTRL_STATUS_BPHL_Msk               (_UINT16_(0x1) << NVMCTRL_STATUS_BPHL_Pos)           /* (NVMCTRL_STATUS) Boot Protect Hard Lock Mask */
358 #define NVMCTRL_STATUS_BPHL(value)            (NVMCTRL_STATUS_BPHL_Msk & (_UINT16_(value) << NVMCTRL_STATUS_BPHL_Pos)) /* Assigment of value for BPHL in the NVMCTRL_STATUS register */
359 #define NVMCTRL_STATUS_Msk                    _UINT16_(0x3F3F)                                     /* (NVMCTRL_STATUS) Register Mask  */
360 
361 
362 /* -------- NVMCTRL_ADDR : (NVMCTRL Offset: 0x14) (R/W 32) Address -------- */
363 #define NVMCTRL_ADDR_RESETVALUE               _UINT32_(0x00)                                       /*  (NVMCTRL_ADDR) Address  Reset Value */
364 
365 #define NVMCTRL_ADDR_ADDR_Pos                 _UINT32_(0)                                          /* (NVMCTRL_ADDR) NVM Address Position */
366 #define NVMCTRL_ADDR_ADDR_Msk                 (_UINT32_(0xFFFFFF) << NVMCTRL_ADDR_ADDR_Pos)        /* (NVMCTRL_ADDR) NVM Address Mask */
367 #define NVMCTRL_ADDR_ADDR(value)              (NVMCTRL_ADDR_ADDR_Msk & (_UINT32_(value) << NVMCTRL_ADDR_ADDR_Pos)) /* Assigment of value for ADDR in the NVMCTRL_ADDR register */
368 #define NVMCTRL_ADDR_Msk                      _UINT32_(0x00FFFFFF)                                 /* (NVMCTRL_ADDR) Register Mask  */
369 
370 
371 /* -------- NVMCTRL_RUNLOCK : (NVMCTRL Offset: 0x18) ( R/ 32) Lock Section -------- */
372 #define NVMCTRL_RUNLOCK_RESETVALUE            _UINT32_(0x00)                                       /*  (NVMCTRL_RUNLOCK) Lock Section  Reset Value */
373 
374 #define NVMCTRL_RUNLOCK_RUNLOCK_Pos           _UINT32_(0)                                          /* (NVMCTRL_RUNLOCK) Region Un-Lock Bits Position */
375 #define NVMCTRL_RUNLOCK_RUNLOCK_Msk           (_UINT32_(0xFFFFFFFF) << NVMCTRL_RUNLOCK_RUNLOCK_Pos) /* (NVMCTRL_RUNLOCK) Region Un-Lock Bits Mask */
376 #define NVMCTRL_RUNLOCK_RUNLOCK(value)        (NVMCTRL_RUNLOCK_RUNLOCK_Msk & (_UINT32_(value) << NVMCTRL_RUNLOCK_RUNLOCK_Pos)) /* Assigment of value for RUNLOCK in the NVMCTRL_RUNLOCK register */
377 #define NVMCTRL_RUNLOCK_Msk                   _UINT32_(0xFFFFFFFF)                                 /* (NVMCTRL_RUNLOCK) Register Mask  */
378 
379 
380 /* -------- NVMCTRL_PBLDATA : (NVMCTRL Offset: 0x1C) ( R/ 32) Page Buffer Load Data x -------- */
381 #define NVMCTRL_PBLDATA_RESETVALUE            _UINT32_(0xFFFFFFFF)                                 /*  (NVMCTRL_PBLDATA) Page Buffer Load Data x  Reset Value */
382 
383 #define NVMCTRL_PBLDATA_DATA_Pos              _UINT32_(0)                                          /* (NVMCTRL_PBLDATA) Page Buffer Data Position */
384 #define NVMCTRL_PBLDATA_DATA_Msk              (_UINT32_(0xFFFFFFFF) << NVMCTRL_PBLDATA_DATA_Pos)   /* (NVMCTRL_PBLDATA) Page Buffer Data Mask */
385 #define NVMCTRL_PBLDATA_DATA(value)           (NVMCTRL_PBLDATA_DATA_Msk & (_UINT32_(value) << NVMCTRL_PBLDATA_DATA_Pos)) /* Assigment of value for DATA in the NVMCTRL_PBLDATA register */
386 #define NVMCTRL_PBLDATA_Msk                   _UINT32_(0xFFFFFFFF)                                 /* (NVMCTRL_PBLDATA) Register Mask  */
387 
388 
389 /* -------- NVMCTRL_ECCERR : (NVMCTRL Offset: 0x24) ( R/ 32) ECC Error Status Register -------- */
390 #define NVMCTRL_ECCERR_RESETVALUE             _UINT32_(0x00)                                       /*  (NVMCTRL_ECCERR) ECC Error Status Register  Reset Value */
391 
392 #define NVMCTRL_ECCERR_ADDR_Pos               _UINT32_(0)                                          /* (NVMCTRL_ECCERR) Error Address Position */
393 #define NVMCTRL_ECCERR_ADDR_Msk               (_UINT32_(0xFFFFFF) << NVMCTRL_ECCERR_ADDR_Pos)      /* (NVMCTRL_ECCERR) Error Address Mask */
394 #define NVMCTRL_ECCERR_ADDR(value)            (NVMCTRL_ECCERR_ADDR_Msk & (_UINT32_(value) << NVMCTRL_ECCERR_ADDR_Pos)) /* Assigment of value for ADDR in the NVMCTRL_ECCERR register */
395 #define NVMCTRL_ECCERR_TYPEL_Pos              _UINT32_(28)                                         /* (NVMCTRL_ECCERR) Low Double-Word Error Type Position */
396 #define NVMCTRL_ECCERR_TYPEL_Msk              (_UINT32_(0x3) << NVMCTRL_ECCERR_TYPEL_Pos)          /* (NVMCTRL_ECCERR) Low Double-Word Error Type Mask */
397 #define NVMCTRL_ECCERR_TYPEL(value)           (NVMCTRL_ECCERR_TYPEL_Msk & (_UINT32_(value) << NVMCTRL_ECCERR_TYPEL_Pos)) /* Assigment of value for TYPEL in the NVMCTRL_ECCERR register */
398 #define   NVMCTRL_ECCERR_TYPEL_NONE_Val       _UINT32_(0x0)                                        /* (NVMCTRL_ECCERR) No Error Detected Since Last Read  */
399 #define   NVMCTRL_ECCERR_TYPEL_SINGLE_Val     _UINT32_(0x1)                                        /* (NVMCTRL_ECCERR) At Least One Single Error Detected Since last Read  */
400 #define   NVMCTRL_ECCERR_TYPEL_DUAL_Val       _UINT32_(0x2)                                        /* (NVMCTRL_ECCERR) At Least One Dual Error Detected Since Last Read  */
401 #define NVMCTRL_ECCERR_TYPEL_NONE             (NVMCTRL_ECCERR_TYPEL_NONE_Val << NVMCTRL_ECCERR_TYPEL_Pos) /* (NVMCTRL_ECCERR) No Error Detected Since Last Read Position  */
402 #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  */
403 #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  */
404 #define NVMCTRL_ECCERR_TYPEH_Pos              _UINT32_(30)                                         /* (NVMCTRL_ECCERR) High Double-Word Error Type Position */
405 #define NVMCTRL_ECCERR_TYPEH_Msk              (_UINT32_(0x3) << NVMCTRL_ECCERR_TYPEH_Pos)          /* (NVMCTRL_ECCERR) High Double-Word Error Type Mask */
406 #define NVMCTRL_ECCERR_TYPEH(value)           (NVMCTRL_ECCERR_TYPEH_Msk & (_UINT32_(value) << NVMCTRL_ECCERR_TYPEH_Pos)) /* Assigment of value for TYPEH in the NVMCTRL_ECCERR register */
407 #define   NVMCTRL_ECCERR_TYPEH_NONE_Val       _UINT32_(0x0)                                        /* (NVMCTRL_ECCERR) No Error Detected Since Last Read  */
408 #define   NVMCTRL_ECCERR_TYPEH_SINGLE_Val     _UINT32_(0x1)                                        /* (NVMCTRL_ECCERR) At Least One Single Error Detected Since last Read  */
409 #define   NVMCTRL_ECCERR_TYPEH_DUAL_Val       _UINT32_(0x2)                                        /* (NVMCTRL_ECCERR) At Least One Dual Error Detected Since Last Read  */
410 #define NVMCTRL_ECCERR_TYPEH_NONE             (NVMCTRL_ECCERR_TYPEH_NONE_Val << NVMCTRL_ECCERR_TYPEH_Pos) /* (NVMCTRL_ECCERR) No Error Detected Since Last Read Position  */
411 #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  */
412 #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  */
413 #define NVMCTRL_ECCERR_Msk                    _UINT32_(0xF0FFFFFF)                                 /* (NVMCTRL_ECCERR) Register Mask  */
414 
415 
416 /* -------- NVMCTRL_DBGCTRL : (NVMCTRL Offset: 0x28) (R/W 8) Debug Control -------- */
417 #define NVMCTRL_DBGCTRL_RESETVALUE            _UINT8_(0x00)                                        /*  (NVMCTRL_DBGCTRL) Debug Control  Reset Value */
418 
419 #define NVMCTRL_DBGCTRL_ECCDIS_Pos            _UINT8_(0)                                           /* (NVMCTRL_DBGCTRL) Debugger ECC Read Disable Position */
420 #define NVMCTRL_DBGCTRL_ECCDIS_Msk            (_UINT8_(0x1) << NVMCTRL_DBGCTRL_ECCDIS_Pos)         /* (NVMCTRL_DBGCTRL) Debugger ECC Read Disable Mask */
421 #define NVMCTRL_DBGCTRL_ECCDIS(value)         (NVMCTRL_DBGCTRL_ECCDIS_Msk & (_UINT8_(value) << NVMCTRL_DBGCTRL_ECCDIS_Pos)) /* Assigment of value for ECCDIS in the NVMCTRL_DBGCTRL register */
422 #define NVMCTRL_DBGCTRL_ECCELOG_Pos           _UINT8_(1)                                           /* (NVMCTRL_DBGCTRL) Debugger ECC Error Tracking Mode Position */
423 #define NVMCTRL_DBGCTRL_ECCELOG_Msk           (_UINT8_(0x1) << NVMCTRL_DBGCTRL_ECCELOG_Pos)        /* (NVMCTRL_DBGCTRL) Debugger ECC Error Tracking Mode Mask */
424 #define NVMCTRL_DBGCTRL_ECCELOG(value)        (NVMCTRL_DBGCTRL_ECCELOG_Msk & (_UINT8_(value) << NVMCTRL_DBGCTRL_ECCELOG_Pos)) /* Assigment of value for ECCELOG in the NVMCTRL_DBGCTRL register */
425 #define NVMCTRL_DBGCTRL_Msk                   _UINT8_(0x03)                                        /* (NVMCTRL_DBGCTRL) Register Mask  */
426 
427 
428 /* -------- NVMCTRL_BCTRL : (NVMCTRL Offset: 0x29) (R/W 8) Boot Control -------- */
429 #define NVMCTRL_BCTRL_RESETVALUE              _UINT8_(0x00)                                        /*  (NVMCTRL_BCTRL) Boot Control  Reset Value */
430 
431 #define NVMCTRL_BCTRL_BRPE_Pos                _UINT8_(0)                                           /* (NVMCTRL_BCTRL) Boot Read Protection Enable Position */
432 #define NVMCTRL_BCTRL_BRPE_Msk                (_UINT8_(0x1) << NVMCTRL_BCTRL_BRPE_Pos)             /* (NVMCTRL_BCTRL) Boot Read Protection Enable Mask */
433 #define NVMCTRL_BCTRL_BRPE(value)             (NVMCTRL_BCTRL_BRPE_Msk & (_UINT8_(value) << NVMCTRL_BCTRL_BRPE_Pos)) /* Assigment of value for BRPE in the NVMCTRL_BCTRL register */
434 #define NVMCTRL_BCTRL_Msk                     _UINT8_(0x01)                                        /* (NVMCTRL_BCTRL) Register Mask  */
435 
436 
437 /* -------- NVMCTRL_SEECFG : (NVMCTRL Offset: 0x2A) (R/W 8) SmartEEPROM Configuration Register -------- */
438 #define NVMCTRL_SEECFG_RESETVALUE             _UINT8_(0x00)                                        /*  (NVMCTRL_SEECFG) SmartEEPROM Configuration Register  Reset Value */
439 
440 #define NVMCTRL_SEECFG_WMODE_Pos              _UINT8_(0)                                           /* (NVMCTRL_SEECFG) Write Mode Position */
441 #define NVMCTRL_SEECFG_WMODE_Msk              (_UINT8_(0x1) << NVMCTRL_SEECFG_WMODE_Pos)           /* (NVMCTRL_SEECFG) Write Mode Mask */
442 #define NVMCTRL_SEECFG_WMODE(value)           (NVMCTRL_SEECFG_WMODE_Msk & (_UINT8_(value) << NVMCTRL_SEECFG_WMODE_Pos)) /* Assigment of value for WMODE in the NVMCTRL_SEECFG register */
443 #define   NVMCTRL_SEECFG_WMODE_UNBUFFERED_Val _UINT8_(0x0)                                         /* (NVMCTRL_SEECFG) A NVM write command is issued after each write in the pagebuffer  */
444 #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  */
445 #define NVMCTRL_SEECFG_APRDIS_Pos             _UINT8_(1)                                           /* (NVMCTRL_SEECFG) Automatic Page Reallocation Disable Position */
446 #define NVMCTRL_SEECFG_APRDIS_Msk             (_UINT8_(0x1) << NVMCTRL_SEECFG_APRDIS_Pos)          /* (NVMCTRL_SEECFG) Automatic Page Reallocation Disable Mask */
447 #define NVMCTRL_SEECFG_APRDIS(value)          (NVMCTRL_SEECFG_APRDIS_Msk & (_UINT8_(value) << NVMCTRL_SEECFG_APRDIS_Pos)) /* Assigment of value for APRDIS in the NVMCTRL_SEECFG register */
448 #define NVMCTRL_SEECFG_Msk                    _UINT8_(0x03)                                        /* (NVMCTRL_SEECFG) Register Mask  */
449 
450 
451 /* -------- NVMCTRL_SEESTAT : (NVMCTRL Offset: 0x2C) ( R/ 32) SmartEEPROM Status Register -------- */
452 #define NVMCTRL_SEESTAT_RESETVALUE            _UINT32_(0x00)                                       /*  (NVMCTRL_SEESTAT) SmartEEPROM Status Register  Reset Value */
453 
454 #define NVMCTRL_SEESTAT_ASEES_Pos             _UINT32_(0)                                          /* (NVMCTRL_SEESTAT) Active SmartEEPROM Sector Position */
455 #define NVMCTRL_SEESTAT_ASEES_Msk             (_UINT32_(0x1) << NVMCTRL_SEESTAT_ASEES_Pos)         /* (NVMCTRL_SEESTAT) Active SmartEEPROM Sector Mask */
456 #define NVMCTRL_SEESTAT_ASEES(value)          (NVMCTRL_SEESTAT_ASEES_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_ASEES_Pos)) /* Assigment of value for ASEES in the NVMCTRL_SEESTAT register */
457 #define NVMCTRL_SEESTAT_BUSY_Pos              _UINT32_(2)                                          /* (NVMCTRL_SEESTAT) Busy Position */
458 #define NVMCTRL_SEESTAT_BUSY_Msk              (_UINT32_(0x1) << NVMCTRL_SEESTAT_BUSY_Pos)          /* (NVMCTRL_SEESTAT) Busy Mask */
459 #define NVMCTRL_SEESTAT_BUSY(value)           (NVMCTRL_SEESTAT_BUSY_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_BUSY_Pos)) /* Assigment of value for BUSY in the NVMCTRL_SEESTAT register */
460 #define NVMCTRL_SEESTAT_LOCK_Pos              _UINT32_(3)                                          /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access Is Locked Position */
461 #define NVMCTRL_SEESTAT_LOCK_Msk              (_UINT32_(0x1) << NVMCTRL_SEESTAT_LOCK_Pos)          /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access Is Locked Mask */
462 #define NVMCTRL_SEESTAT_LOCK(value)           (NVMCTRL_SEESTAT_LOCK_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_LOCK_Pos)) /* Assigment of value for LOCK in the NVMCTRL_SEESTAT register */
463 #define NVMCTRL_SEESTAT_RLOCK_Pos             _UINT32_(4)                                          /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access To Register Address Space Is Locked Position */
464 #define NVMCTRL_SEESTAT_RLOCK_Msk             (_UINT32_(0x1) << NVMCTRL_SEESTAT_RLOCK_Pos)         /* (NVMCTRL_SEESTAT) SmartEEPROM Write Access To Register Address Space Is Locked Mask */
465 #define NVMCTRL_SEESTAT_RLOCK(value)          (NVMCTRL_SEESTAT_RLOCK_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_RLOCK_Pos)) /* Assigment of value for RLOCK in the NVMCTRL_SEESTAT register */
466 #define NVMCTRL_SEESTAT_SBLK_Pos              _UINT32_(8)                                          /* (NVMCTRL_SEESTAT) Blocks Number In a Sector Position */
467 #define NVMCTRL_SEESTAT_SBLK_Msk              (_UINT32_(0xF) << NVMCTRL_SEESTAT_SBLK_Pos)          /* (NVMCTRL_SEESTAT) Blocks Number In a Sector Mask */
468 #define NVMCTRL_SEESTAT_SBLK(value)           (NVMCTRL_SEESTAT_SBLK_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_SBLK_Pos)) /* Assigment of value for SBLK in the NVMCTRL_SEESTAT register */
469 #define NVMCTRL_SEESTAT_PSZ_Pos               _UINT32_(16)                                         /* (NVMCTRL_SEESTAT) SmartEEPROM Page Size Position */
470 #define NVMCTRL_SEESTAT_PSZ_Msk               (_UINT32_(0x7) << NVMCTRL_SEESTAT_PSZ_Pos)           /* (NVMCTRL_SEESTAT) SmartEEPROM Page Size Mask */
471 #define NVMCTRL_SEESTAT_PSZ(value)            (NVMCTRL_SEESTAT_PSZ_Msk & (_UINT32_(value) << NVMCTRL_SEESTAT_PSZ_Pos)) /* Assigment of value for PSZ in the NVMCTRL_SEESTAT register */
472 #define NVMCTRL_SEESTAT_Msk                   _UINT32_(0x00070F1D)                                 /* (NVMCTRL_SEESTAT) Register Mask  */
473 
474 
475 /** \brief NVMCTRL register offsets definitions */
476 #define NVMCTRL_CTRLA_REG_OFST         _UINT32_(0x00)      /* (NVMCTRL_CTRLA) Control A Offset */
477 #define NVMCTRL_CTRLB_REG_OFST         _UINT32_(0x04)      /* (NVMCTRL_CTRLB) Control B Offset */
478 #define NVMCTRL_PARAM_REG_OFST         _UINT32_(0x08)      /* (NVMCTRL_PARAM) NVM Parameter Offset */
479 #define NVMCTRL_INTENCLR_REG_OFST      _UINT32_(0x0C)      /* (NVMCTRL_INTENCLR) Interrupt Enable Clear Offset */
480 #define NVMCTRL_INTENSET_REG_OFST      _UINT32_(0x0E)      /* (NVMCTRL_INTENSET) Interrupt Enable Set Offset */
481 #define NVMCTRL_INTFLAG_REG_OFST       _UINT32_(0x10)      /* (NVMCTRL_INTFLAG) Interrupt Flag Status and Clear Offset */
482 #define NVMCTRL_STATUS_REG_OFST        _UINT32_(0x12)      /* (NVMCTRL_STATUS) Status Offset */
483 #define NVMCTRL_ADDR_REG_OFST          _UINT32_(0x14)      /* (NVMCTRL_ADDR) Address Offset */
484 #define NVMCTRL_RUNLOCK_REG_OFST       _UINT32_(0x18)      /* (NVMCTRL_RUNLOCK) Lock Section Offset */
485 #define NVMCTRL_PBLDATA_REG_OFST       _UINT32_(0x1C)      /* (NVMCTRL_PBLDATA) Page Buffer Load Data x Offset */
486 #define NVMCTRL_PBLDATA0_REG_OFST      _UINT32_(0x1C)      /* (NVMCTRL_PBLDATA0) Page Buffer Load Data x Offset */
487 #define NVMCTRL_PBLDATA1_REG_OFST      _UINT32_(0x20)      /* (NVMCTRL_PBLDATA1) Page Buffer Load Data x Offset */
488 #define NVMCTRL_ECCERR_REG_OFST        _UINT32_(0x24)      /* (NVMCTRL_ECCERR) ECC Error Status Register Offset */
489 #define NVMCTRL_DBGCTRL_REG_OFST       _UINT32_(0x28)      /* (NVMCTRL_DBGCTRL) Debug Control Offset */
490 #define NVMCTRL_BCTRL_REG_OFST         _UINT32_(0x29)      /* (NVMCTRL_BCTRL) Boot Control Offset */
491 #define NVMCTRL_SEECFG_REG_OFST        _UINT32_(0x2A)      /* (NVMCTRL_SEECFG) SmartEEPROM Configuration Register Offset */
492 #define NVMCTRL_SEESTAT_REG_OFST       _UINT32_(0x2C)      /* (NVMCTRL_SEESTAT) SmartEEPROM Status Register Offset */
493 
494 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
495 /** \brief NVMCTRL register API structure */
496 typedef struct
497 {  /* Non-Volatile Memory Controller */
498   __IO  uint16_t                       NVMCTRL_CTRLA;      /**< Offset: 0x00 (R/W  16) Control A */
499   __I   uint8_t                        Reserved1[0x02];
500   __O   uint16_t                       NVMCTRL_CTRLB;      /**< Offset: 0x04 ( /W  16) Control B */
501   __I   uint8_t                        Reserved2[0x02];
502   __I   uint32_t                       NVMCTRL_PARAM;      /**< Offset: 0x08 (R/   32) NVM Parameter */
503   __IO  uint16_t                       NVMCTRL_INTENCLR;   /**< Offset: 0x0C (R/W  16) Interrupt Enable Clear */
504   __IO  uint16_t                       NVMCTRL_INTENSET;   /**< Offset: 0x0E (R/W  16) Interrupt Enable Set */
505   __IO  uint16_t                       NVMCTRL_INTFLAG;    /**< Offset: 0x10 (R/W  16) Interrupt Flag Status and Clear */
506   __I   uint16_t                       NVMCTRL_STATUS;     /**< Offset: 0x12 (R/   16) Status */
507   __IO  uint32_t                       NVMCTRL_ADDR;       /**< Offset: 0x14 (R/W  32) Address */
508   __I   uint32_t                       NVMCTRL_RUNLOCK;    /**< Offset: 0x18 (R/   32) Lock Section */
509   __I   uint32_t                       NVMCTRL_PBLDATA[2]; /**< Offset: 0x1C (R/   32) Page Buffer Load Data x */
510   __I   uint32_t                       NVMCTRL_ECCERR;     /**< Offset: 0x24 (R/   32) ECC Error Status Register */
511   __IO  uint8_t                        NVMCTRL_DBGCTRL;    /**< Offset: 0x28 (R/W  8) Debug Control */
512   __IO  uint8_t                        NVMCTRL_BCTRL;      /**< Offset: 0x29 (R/W  8) Boot Control */
513   __IO  uint8_t                        NVMCTRL_SEECFG;     /**< Offset: 0x2A (R/W  8) SmartEEPROM Configuration Register */
514   __I   uint8_t                        Reserved3[0x01];
515   __I   uint32_t                       NVMCTRL_SEESTAT;    /**< Offset: 0x2C (R/   32) SmartEEPROM Status Register */
516 } nvmctrl_registers_t;
517 
518 
519 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
520 #endif /* _PIC32CXSG60_NVMCTRL_COMPONENT_H_ */
521