1 /**
2  * \file
3  *
4  * \brief Component description for FLASHCALW
5  *
6  * Copyright (c) 2016 Atmel Corporation,
7  *                    a wholly owned subsidiary of Microchip Technology Inc.
8  *
9  * \asf_license_start
10  *
11  * \page License
12  *
13  * Licensed under the Apache License, Version 2.0 (the "License");
14  * you may not use this file except in compliance with the License.
15  * You may obtain a copy of the Licence at
16  *
17  *     http://www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an "AS IS" BASIS,
21  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  *
25  * \asf_license_stop
26  *
27  */
28 
29 #ifndef _SAM4L_FLASHCALW_COMPONENT_
30 #define _SAM4L_FLASHCALW_COMPONENT_
31 
32 /* ========================================================================== */
33 /**  SOFTWARE API DEFINITION FOR FLASHCALW */
34 /* ========================================================================== */
35 /** \addtogroup SAM4L_FLASHCALW Flash Controller */
36 /*@{*/
37 
38 #define FLASHCALW_I8322
39 #define REV_FLASHCALW               0x110
40 
41 /* -------- FLASHCALW_FCR : (FLASHCALW Offset: 0x00) (R/W 32) Flash Controller Control Register -------- */
42 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
43 typedef union {
44   struct {
45     uint32_t FRDY:1;           /*!< bit:      0  Flash Ready Interrupt Enable       */
46     uint32_t :1;               /*!< bit:      1  Reserved                           */
47     uint32_t LOCKE:1;          /*!< bit:      2  Lock Error Interrupt Enable        */
48     uint32_t PROGE:1;          /*!< bit:      3  Programming Error Interrupt Enable */
49     uint32_t :2;               /*!< bit:  4.. 5  Reserved                           */
50     uint32_t FWS:1;            /*!< bit:      6  Flash Wait State                   */
51     uint32_t WS1OPT:1;         /*!< bit:      7  Wait State 1 Optimization          */
52     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
53   } bit;                       /*!< Structure used for bit  access                  */
54   uint32_t reg;                /*!< Type      used for register access              */
55 } FLASHCALW_FCR_Type;
56 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
57 
58 #define FLASHCALW_FCR_OFFSET        0x00         /**< \brief (FLASHCALW_FCR offset) Flash Controller Control Register */
59 #define FLASHCALW_FCR_RESETVALUE    _U_(0x00000000); /**< \brief (FLASHCALW_FCR reset_value) Flash Controller Control Register */
60 
61 #define FLASHCALW_FCR_FRDY_Pos      0            /**< \brief (FLASHCALW_FCR) Flash Ready Interrupt Enable */
62 #define FLASHCALW_FCR_FRDY          (_U_(0x1) << FLASHCALW_FCR_FRDY_Pos)
63 #define   FLASHCALW_FCR_FRDY_0_Val        _U_(0x0)   /**< \brief (FLASHCALW_FCR) Flash Ready does not generate an interrupt */
64 #define   FLASHCALW_FCR_FRDY_1_Val        _U_(0x1)   /**< \brief (FLASHCALW_FCR) Flash Ready generates an interrupt */
65 #define FLASHCALW_FCR_FRDY_0        (FLASHCALW_FCR_FRDY_0_Val      << FLASHCALW_FCR_FRDY_Pos)
66 #define FLASHCALW_FCR_FRDY_1        (FLASHCALW_FCR_FRDY_1_Val      << FLASHCALW_FCR_FRDY_Pos)
67 #define FLASHCALW_FCR_LOCKE_Pos     2            /**< \brief (FLASHCALW_FCR) Lock Error Interrupt Enable */
68 #define FLASHCALW_FCR_LOCKE         (_U_(0x1) << FLASHCALW_FCR_LOCKE_Pos)
69 #define   FLASHCALW_FCR_LOCKE_0_Val       _U_(0x0)   /**< \brief (FLASHCALW_FCR) Lock Error does not generate an interrupt */
70 #define   FLASHCALW_FCR_LOCKE_1_Val       _U_(0x1)   /**< \brief (FLASHCALW_FCR) Lock Error generates an interrupt */
71 #define FLASHCALW_FCR_LOCKE_0       (FLASHCALW_FCR_LOCKE_0_Val     << FLASHCALW_FCR_LOCKE_Pos)
72 #define FLASHCALW_FCR_LOCKE_1       (FLASHCALW_FCR_LOCKE_1_Val     << FLASHCALW_FCR_LOCKE_Pos)
73 #define FLASHCALW_FCR_PROGE_Pos     3            /**< \brief (FLASHCALW_FCR) Programming Error Interrupt Enable */
74 #define FLASHCALW_FCR_PROGE         (_U_(0x1) << FLASHCALW_FCR_PROGE_Pos)
75 #define   FLASHCALW_FCR_PROGE_0_Val       _U_(0x0)   /**< \brief (FLASHCALW_FCR) Programming Error does not generate an interrupt */
76 #define   FLASHCALW_FCR_PROGE_1_Val       _U_(0x1)   /**< \brief (FLASHCALW_FCR) Programming Error generates an interrupt */
77 #define FLASHCALW_FCR_PROGE_0       (FLASHCALW_FCR_PROGE_0_Val     << FLASHCALW_FCR_PROGE_Pos)
78 #define FLASHCALW_FCR_PROGE_1       (FLASHCALW_FCR_PROGE_1_Val     << FLASHCALW_FCR_PROGE_Pos)
79 #define FLASHCALW_FCR_FWS_Pos       6            /**< \brief (FLASHCALW_FCR) Flash Wait State */
80 #define FLASHCALW_FCR_FWS           (_U_(0x1) << FLASHCALW_FCR_FWS_Pos)
81 #define   FLASHCALW_FCR_FWS_0_Val         _U_(0x0)   /**< \brief (FLASHCALW_FCR) The flash is read with 0 wait states */
82 #define   FLASHCALW_FCR_FWS_1_Val         _U_(0x1)   /**< \brief (FLASHCALW_FCR) The flash is read with 1 wait states */
83 #define FLASHCALW_FCR_FWS_0         (FLASHCALW_FCR_FWS_0_Val       << FLASHCALW_FCR_FWS_Pos)
84 #define FLASHCALW_FCR_FWS_1         (FLASHCALW_FCR_FWS_1_Val       << FLASHCALW_FCR_FWS_Pos)
85 #define FLASHCALW_FCR_WS1OPT_Pos    7            /**< \brief (FLASHCALW_FCR) Wait State 1 Optimization */
86 #define FLASHCALW_FCR_WS1OPT        (_U_(0x1) << FLASHCALW_FCR_WS1OPT_Pos)
87 #define FLASHCALW_FCR_MASK          _U_(0x000000CD) /**< \brief (FLASHCALW_FCR) MASK Register */
88 
89 /* -------- FLASHCALW_FCMD : (FLASHCALW Offset: 0x04) (R/W 32) Flash Controller Command Register -------- */
90 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
91 typedef union {
92   struct {
93     uint32_t CMD:6;            /*!< bit:  0.. 5  Command                            */
94     uint32_t :2;               /*!< bit:  6.. 7  Reserved                           */
95     uint32_t PAGEN:16;         /*!< bit:  8..23  Page number                        */
96     uint32_t KEY:8;            /*!< bit: 24..31  Write protection key               */
97   } bit;                       /*!< Structure used for bit  access                  */
98   uint32_t reg;                /*!< Type      used for register access              */
99 } FLASHCALW_FCMD_Type;
100 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
101 
102 #define FLASHCALW_FCMD_OFFSET       0x04         /**< \brief (FLASHCALW_FCMD offset) Flash Controller Command Register */
103 #define FLASHCALW_FCMD_RESETVALUE   _U_(0x00000000); /**< \brief (FLASHCALW_FCMD reset_value) Flash Controller Command Register */
104 
105 #define FLASHCALW_FCMD_CMD_Pos      0            /**< \brief (FLASHCALW_FCMD) Command */
106 #define FLASHCALW_FCMD_CMD_Msk      (_U_(0x3F) << FLASHCALW_FCMD_CMD_Pos)
107 #define FLASHCALW_FCMD_CMD(value)   (FLASHCALW_FCMD_CMD_Msk & ((value) << FLASHCALW_FCMD_CMD_Pos))
108 #define   FLASHCALW_FCMD_CMD_NOP_Val      _U_(0x0)   /**< \brief (FLASHCALW_FCMD) No Operation */
109 #define   FLASHCALW_FCMD_CMD_WP_Val       _U_(0x1)   /**< \brief (FLASHCALW_FCMD) Write Page */
110 #define   FLASHCALW_FCMD_CMD_EP_Val       _U_(0x2)   /**< \brief (FLASHCALW_FCMD) Erase Page */
111 #define   FLASHCALW_FCMD_CMD_CPB_Val      _U_(0x3)   /**< \brief (FLASHCALW_FCMD) Clear Page Buffer */
112 #define   FLASHCALW_FCMD_CMD_LP_Val       _U_(0x4)   /**< \brief (FLASHCALW_FCMD) Lock Region containing page */
113 #define   FLASHCALW_FCMD_CMD_UP_Val       _U_(0x5)   /**< \brief (FLASHCALW_FCMD) Unlock Region containing page */
114 #define   FLASHCALW_FCMD_CMD_EA_Val       _U_(0x6)   /**< \brief (FLASHCALW_FCMD) Erase All, including secuity and fuse bits */
115 #define   FLASHCALW_FCMD_CMD_WGPB_Val     _U_(0x7)   /**< \brief (FLASHCALW_FCMD) Write General-Purpose fuse Bit */
116 #define   FLASHCALW_FCMD_CMD_EGPB_Val     _U_(0x8)   /**< \brief (FLASHCALW_FCMD) Erase General-Purpose fuse Bit */
117 #define   FLASHCALW_FCMD_CMD_SSB_Val      _U_(0x9)   /**< \brief (FLASHCALW_FCMD) Set Security Bit */
118 #define   FLASHCALW_FCMD_CMD_PGPFB_Val    _U_(0xA)   /**< \brief (FLASHCALW_FCMD) Program GPFuse Byte */
119 #define   FLASHCALW_FCMD_CMD_EAGPF_Val    _U_(0xB)   /**< \brief (FLASHCALW_FCMD) Erase All GP Fuses */
120 #define   FLASHCALW_FCMD_CMD_QPR_Val      _U_(0xC)   /**< \brief (FLASHCALW_FCMD) Quick Page Read */
121 #define   FLASHCALW_FCMD_CMD_WUP_Val      _U_(0xD)   /**< \brief (FLASHCALW_FCMD) Write User Page */
122 #define   FLASHCALW_FCMD_CMD_EUP_Val      _U_(0xE)   /**< \brief (FLASHCALW_FCMD) Erase User Page */
123 #define   FLASHCALW_FCMD_CMD_QPRUP_Val    _U_(0xF)   /**< \brief (FLASHCALW_FCMD) Quick Page Read User Page */
124 #define   FLASHCALW_FCMD_CMD_HSEN_Val     _U_(0x10)   /**< \brief (FLASHCALW_FCMD) High Speed Mode Enable */
125 #define   FLASHCALW_FCMD_CMD_HSDIS_Val    _U_(0x11)   /**< \brief (FLASHCALW_FCMD) High Speed Mode Disable */
126 #define FLASHCALW_FCMD_CMD_NOP      (FLASHCALW_FCMD_CMD_NOP_Val    << FLASHCALW_FCMD_CMD_Pos)
127 #define FLASHCALW_FCMD_CMD_WP       (FLASHCALW_FCMD_CMD_WP_Val     << FLASHCALW_FCMD_CMD_Pos)
128 #define FLASHCALW_FCMD_CMD_EP       (FLASHCALW_FCMD_CMD_EP_Val     << FLASHCALW_FCMD_CMD_Pos)
129 #define FLASHCALW_FCMD_CMD_CPB      (FLASHCALW_FCMD_CMD_CPB_Val    << FLASHCALW_FCMD_CMD_Pos)
130 #define FLASHCALW_FCMD_CMD_LP       (FLASHCALW_FCMD_CMD_LP_Val     << FLASHCALW_FCMD_CMD_Pos)
131 #define FLASHCALW_FCMD_CMD_UP       (FLASHCALW_FCMD_CMD_UP_Val     << FLASHCALW_FCMD_CMD_Pos)
132 #define FLASHCALW_FCMD_CMD_EA       (FLASHCALW_FCMD_CMD_EA_Val     << FLASHCALW_FCMD_CMD_Pos)
133 #define FLASHCALW_FCMD_CMD_WGPB     (FLASHCALW_FCMD_CMD_WGPB_Val   << FLASHCALW_FCMD_CMD_Pos)
134 #define FLASHCALW_FCMD_CMD_EGPB     (FLASHCALW_FCMD_CMD_EGPB_Val   << FLASHCALW_FCMD_CMD_Pos)
135 #define FLASHCALW_FCMD_CMD_SSB      (FLASHCALW_FCMD_CMD_SSB_Val    << FLASHCALW_FCMD_CMD_Pos)
136 #define FLASHCALW_FCMD_CMD_PGPFB    (FLASHCALW_FCMD_CMD_PGPFB_Val  << FLASHCALW_FCMD_CMD_Pos)
137 #define FLASHCALW_FCMD_CMD_EAGPF    (FLASHCALW_FCMD_CMD_EAGPF_Val  << FLASHCALW_FCMD_CMD_Pos)
138 #define FLASHCALW_FCMD_CMD_QPR      (FLASHCALW_FCMD_CMD_QPR_Val    << FLASHCALW_FCMD_CMD_Pos)
139 #define FLASHCALW_FCMD_CMD_WUP      (FLASHCALW_FCMD_CMD_WUP_Val    << FLASHCALW_FCMD_CMD_Pos)
140 #define FLASHCALW_FCMD_CMD_EUP      (FLASHCALW_FCMD_CMD_EUP_Val    << FLASHCALW_FCMD_CMD_Pos)
141 #define FLASHCALW_FCMD_CMD_QPRUP    (FLASHCALW_FCMD_CMD_QPRUP_Val  << FLASHCALW_FCMD_CMD_Pos)
142 #define FLASHCALW_FCMD_CMD_HSEN     (FLASHCALW_FCMD_CMD_HSEN_Val   << FLASHCALW_FCMD_CMD_Pos)
143 #define FLASHCALW_FCMD_CMD_HSDIS    (FLASHCALW_FCMD_CMD_HSDIS_Val  << FLASHCALW_FCMD_CMD_Pos)
144 #define FLASHCALW_FCMD_PAGEN_Pos    8            /**< \brief (FLASHCALW_FCMD) Page number */
145 #define FLASHCALW_FCMD_PAGEN_Msk    (_U_(0xFFFF) << FLASHCALW_FCMD_PAGEN_Pos)
146 #define FLASHCALW_FCMD_PAGEN(value) (FLASHCALW_FCMD_PAGEN_Msk & ((value) << FLASHCALW_FCMD_PAGEN_Pos))
147 #define FLASHCALW_FCMD_KEY_Pos      24           /**< \brief (FLASHCALW_FCMD) Write protection key */
148 #define FLASHCALW_FCMD_KEY_Msk      (_U_(0xFF) << FLASHCALW_FCMD_KEY_Pos)
149 #define FLASHCALW_FCMD_KEY(value)   (FLASHCALW_FCMD_KEY_Msk & ((value) << FLASHCALW_FCMD_KEY_Pos))
150 #define   FLASHCALW_FCMD_KEY_KEY_Val      _U_(0xA5)   /**< \brief (FLASHCALW_FCMD)  */
151 #define FLASHCALW_FCMD_KEY_KEY      (FLASHCALW_FCMD_KEY_KEY_Val    << FLASHCALW_FCMD_KEY_Pos)
152 #define FLASHCALW_FCMD_MASK         _U_(0xFFFFFF3F) /**< \brief (FLASHCALW_FCMD) MASK Register */
153 
154 /* -------- FLASHCALW_FSR : (FLASHCALW Offset: 0x08) (R/W 32) Flash Controller Status Register -------- */
155 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
156 typedef union {
157   struct {
158     uint32_t FRDY:1;           /*!< bit:      0  Flash Ready Status                 */
159     uint32_t :1;               /*!< bit:      1  Reserved                           */
160     uint32_t LOCKE:1;          /*!< bit:      2  Lock Error Status                  */
161     uint32_t PROGE:1;          /*!< bit:      3  Programming Error Status           */
162     uint32_t SECURITY:1;       /*!< bit:      4  Security Bit Status                */
163     uint32_t QPRR:1;           /*!< bit:      5  Quick Page Read Result             */
164     uint32_t HSMODE:1;         /*!< bit:      6  High Speed Mode                    */
165     uint32_t :1;               /*!< bit:      7  Reserved                           */
166     uint32_t ECCERR:2;         /*!< bit:  8.. 9  ECC Error Status                   */
167     uint32_t :6;               /*!< bit: 10..15  Reserved                           */
168     uint32_t LOCK0:1;          /*!< bit:     16  Lock Region 0 Lock Status          */
169     uint32_t LOCK1:1;          /*!< bit:     17  Lock Region 1 Lock Status          */
170     uint32_t LOCK2:1;          /*!< bit:     18  Lock Region 2 Lock Status          */
171     uint32_t LOCK3:1;          /*!< bit:     19  Lock Region 3 Lock Status          */
172     uint32_t LOCK4:1;          /*!< bit:     20  Lock Region 4 Lock Status          */
173     uint32_t LOCK5:1;          /*!< bit:     21  Lock Region 5 Lock Status          */
174     uint32_t LOCK6:1;          /*!< bit:     22  Lock Region 6 Lock Status          */
175     uint32_t LOCK7:1;          /*!< bit:     23  Lock Region 7 Lock Status          */
176     uint32_t LOCK8:1;          /*!< bit:     24  Lock Region 8 Lock Status          */
177     uint32_t LOCK9:1;          /*!< bit:     25  Lock Region 9 Lock Status          */
178     uint32_t LOCK10:1;         /*!< bit:     26  Lock Region 10 Lock Status         */
179     uint32_t LOCK11:1;         /*!< bit:     27  Lock Region 11 Lock Status         */
180     uint32_t LOCK12:1;         /*!< bit:     28  Lock Region 12 Lock Status         */
181     uint32_t LOCK13:1;         /*!< bit:     29  Lock Region 13 Lock Status         */
182     uint32_t LOCK14:1;         /*!< bit:     30  Lock Region 14 Lock Status         */
183     uint32_t LOCK15:1;         /*!< bit:     31  Lock Region 15 Lock Status         */
184   } bit;                       /*!< Structure used for bit  access                  */
185   uint32_t reg;                /*!< Type      used for register access              */
186 } FLASHCALW_FSR_Type;
187 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
188 
189 #define FLASHCALW_FSR_OFFSET        0x08         /**< \brief (FLASHCALW_FSR offset) Flash Controller Status Register */
190 #define FLASHCALW_FSR_RESETVALUE    _U_(0x00000000); /**< \brief (FLASHCALW_FSR reset_value) Flash Controller Status Register */
191 
192 #define FLASHCALW_FSR_FRDY_Pos      0            /**< \brief (FLASHCALW_FSR) Flash Ready Status */
193 #define FLASHCALW_FSR_FRDY          (_U_(0x1) << FLASHCALW_FSR_FRDY_Pos)
194 #define FLASHCALW_FSR_LOCKE_Pos     2            /**< \brief (FLASHCALW_FSR) Lock Error Status */
195 #define FLASHCALW_FSR_LOCKE         (_U_(0x1) << FLASHCALW_FSR_LOCKE_Pos)
196 #define FLASHCALW_FSR_PROGE_Pos     3            /**< \brief (FLASHCALW_FSR) Programming Error Status */
197 #define FLASHCALW_FSR_PROGE         (_U_(0x1) << FLASHCALW_FSR_PROGE_Pos)
198 #define FLASHCALW_FSR_SECURITY_Pos  4            /**< \brief (FLASHCALW_FSR) Security Bit Status */
199 #define FLASHCALW_FSR_SECURITY      (_U_(0x1) << FLASHCALW_FSR_SECURITY_Pos)
200 #define FLASHCALW_FSR_QPRR_Pos      5            /**< \brief (FLASHCALW_FSR) Quick Page Read Result */
201 #define FLASHCALW_FSR_QPRR          (_U_(0x1) << FLASHCALW_FSR_QPRR_Pos)
202 #define FLASHCALW_FSR_HSMODE_Pos    6            /**< \brief (FLASHCALW_FSR) High Speed Mode */
203 #define FLASHCALW_FSR_HSMODE        (_U_(0x1) << FLASHCALW_FSR_HSMODE_Pos)
204 #define FLASHCALW_FSR_ECCERR_Pos    8            /**< \brief (FLASHCALW_FSR) ECC Error Status */
205 #define FLASHCALW_FSR_ECCERR_Msk    (_U_(0x3) << FLASHCALW_FSR_ECCERR_Pos)
206 #define FLASHCALW_FSR_ECCERR(value) (FLASHCALW_FSR_ECCERR_Msk & ((value) << FLASHCALW_FSR_ECCERR_Pos))
207 #define   FLASHCALW_FSR_ECCERR_NOERROR_Val _U_(0x0)   /**< \brief (FLASHCALW_FSR) no error */
208 #define   FLASHCALW_FSR_ECCERR_ONEECCERR_Val _U_(0x1)   /**< \brief (FLASHCALW_FSR) one ECC error detected */
209 #define   FLASHCALW_FSR_ECCERR_TWOECCERR_Val _U_(0x2)   /**< \brief (FLASHCALW_FSR) two ECC errors detected */
210 #define FLASHCALW_FSR_ECCERR_NOERROR (FLASHCALW_FSR_ECCERR_NOERROR_Val << FLASHCALW_FSR_ECCERR_Pos)
211 #define FLASHCALW_FSR_ECCERR_ONEECCERR (FLASHCALW_FSR_ECCERR_ONEECCERR_Val << FLASHCALW_FSR_ECCERR_Pos)
212 #define FLASHCALW_FSR_ECCERR_TWOECCERR (FLASHCALW_FSR_ECCERR_TWOECCERR_Val << FLASHCALW_FSR_ECCERR_Pos)
213 #define FLASHCALW_FSR_LOCK0_Pos     16           /**< \brief (FLASHCALW_FSR) Lock Region 0 Lock Status */
214 #define FLASHCALW_FSR_LOCK0         (_U_(0x1) << FLASHCALW_FSR_LOCK0_Pos)
215 #define FLASHCALW_FSR_LOCK1_Pos     17           /**< \brief (FLASHCALW_FSR) Lock Region 1 Lock Status */
216 #define FLASHCALW_FSR_LOCK1         (_U_(0x1) << FLASHCALW_FSR_LOCK1_Pos)
217 #define FLASHCALW_FSR_LOCK2_Pos     18           /**< \brief (FLASHCALW_FSR) Lock Region 2 Lock Status */
218 #define FLASHCALW_FSR_LOCK2         (_U_(0x1) << FLASHCALW_FSR_LOCK2_Pos)
219 #define FLASHCALW_FSR_LOCK3_Pos     19           /**< \brief (FLASHCALW_FSR) Lock Region 3 Lock Status */
220 #define FLASHCALW_FSR_LOCK3         (_U_(0x1) << FLASHCALW_FSR_LOCK3_Pos)
221 #define FLASHCALW_FSR_LOCK4_Pos     20           /**< \brief (FLASHCALW_FSR) Lock Region 4 Lock Status */
222 #define FLASHCALW_FSR_LOCK4         (_U_(0x1) << FLASHCALW_FSR_LOCK4_Pos)
223 #define FLASHCALW_FSR_LOCK5_Pos     21           /**< \brief (FLASHCALW_FSR) Lock Region 5 Lock Status */
224 #define FLASHCALW_FSR_LOCK5         (_U_(0x1) << FLASHCALW_FSR_LOCK5_Pos)
225 #define FLASHCALW_FSR_LOCK6_Pos     22           /**< \brief (FLASHCALW_FSR) Lock Region 6 Lock Status */
226 #define FLASHCALW_FSR_LOCK6         (_U_(0x1) << FLASHCALW_FSR_LOCK6_Pos)
227 #define FLASHCALW_FSR_LOCK7_Pos     23           /**< \brief (FLASHCALW_FSR) Lock Region 7 Lock Status */
228 #define FLASHCALW_FSR_LOCK7         (_U_(0x1) << FLASHCALW_FSR_LOCK7_Pos)
229 #define FLASHCALW_FSR_LOCK8_Pos     24           /**< \brief (FLASHCALW_FSR) Lock Region 8 Lock Status */
230 #define FLASHCALW_FSR_LOCK8         (_U_(0x1) << FLASHCALW_FSR_LOCK8_Pos)
231 #define FLASHCALW_FSR_LOCK9_Pos     25           /**< \brief (FLASHCALW_FSR) Lock Region 9 Lock Status */
232 #define FLASHCALW_FSR_LOCK9         (_U_(0x1) << FLASHCALW_FSR_LOCK9_Pos)
233 #define FLASHCALW_FSR_LOCK10_Pos    26           /**< \brief (FLASHCALW_FSR) Lock Region 10 Lock Status */
234 #define FLASHCALW_FSR_LOCK10        (_U_(0x1) << FLASHCALW_FSR_LOCK10_Pos)
235 #define FLASHCALW_FSR_LOCK11_Pos    27           /**< \brief (FLASHCALW_FSR) Lock Region 11 Lock Status */
236 #define FLASHCALW_FSR_LOCK11        (_U_(0x1) << FLASHCALW_FSR_LOCK11_Pos)
237 #define FLASHCALW_FSR_LOCK12_Pos    28           /**< \brief (FLASHCALW_FSR) Lock Region 12 Lock Status */
238 #define FLASHCALW_FSR_LOCK12        (_U_(0x1) << FLASHCALW_FSR_LOCK12_Pos)
239 #define FLASHCALW_FSR_LOCK13_Pos    29           /**< \brief (FLASHCALW_FSR) Lock Region 13 Lock Status */
240 #define FLASHCALW_FSR_LOCK13        (_U_(0x1) << FLASHCALW_FSR_LOCK13_Pos)
241 #define FLASHCALW_FSR_LOCK14_Pos    30           /**< \brief (FLASHCALW_FSR) Lock Region 14 Lock Status */
242 #define FLASHCALW_FSR_LOCK14        (_U_(0x1) << FLASHCALW_FSR_LOCK14_Pos)
243 #define FLASHCALW_FSR_LOCK15_Pos    31           /**< \brief (FLASHCALW_FSR) Lock Region 15 Lock Status */
244 #define FLASHCALW_FSR_LOCK15        (_U_(0x1) << FLASHCALW_FSR_LOCK15_Pos)
245 #define FLASHCALW_FSR_MASK          _U_(0xFFFF037D) /**< \brief (FLASHCALW_FSR) MASK Register */
246 
247 /* -------- FLASHCALW_FPR : (FLASHCALW Offset: 0x0C) (R/  32) Flash Controller Parameter Register -------- */
248 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
249 typedef union {
250   struct {
251     uint32_t FSZ:4;            /*!< bit:  0.. 3  Flash Size                         */
252     uint32_t :4;               /*!< bit:  4.. 7  Reserved                           */
253     uint32_t PSZ:3;            /*!< bit:  8..10  Page Size                          */
254     uint32_t :21;              /*!< bit: 11..31  Reserved                           */
255   } bit;                       /*!< Structure used for bit  access                  */
256   uint32_t reg;                /*!< Type      used for register access              */
257 } FLASHCALW_FPR_Type;
258 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
259 
260 #define FLASHCALW_FPR_OFFSET        0x0C         /**< \brief (FLASHCALW_FPR offset) Flash Controller Parameter Register */
261 
262 #define FLASHCALW_FPR_FSZ_Pos       0            /**< \brief (FLASHCALW_FPR) Flash Size */
263 #define FLASHCALW_FPR_FSZ_Msk       (_U_(0xF) << FLASHCALW_FPR_FSZ_Pos)
264 #define FLASHCALW_FPR_FSZ(value)    (FLASHCALW_FPR_FSZ_Msk & ((value) << FLASHCALW_FPR_FSZ_Pos))
265 #define FLASHCALW_FPR_PSZ_Pos       8            /**< \brief (FLASHCALW_FPR) Page Size */
266 #define FLASHCALW_FPR_PSZ_Msk       (_U_(0x7) << FLASHCALW_FPR_PSZ_Pos)
267 #define FLASHCALW_FPR_PSZ(value)    (FLASHCALW_FPR_PSZ_Msk & ((value) << FLASHCALW_FPR_PSZ_Pos))
268 #define FLASHCALW_FPR_MASK          _U_(0x0000070F) /**< \brief (FLASHCALW_FPR) MASK Register */
269 
270 /* -------- FLASHCALW_VERSION : (FLASHCALW Offset: 0x10) (R/  32) Flash Controller Version Register -------- */
271 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
272 typedef union {
273   struct {
274     uint32_t VERSION:12;       /*!< bit:  0..11  Version Number                     */
275     uint32_t :4;               /*!< bit: 12..15  Reserved                           */
276     uint32_t VARIANT:4;        /*!< bit: 16..19  Variant Number                     */
277     uint32_t :12;              /*!< bit: 20..31  Reserved                           */
278   } bit;                       /*!< Structure used for bit  access                  */
279   uint32_t reg;                /*!< Type      used for register access              */
280 } FLASHCALW_VERSION_Type;
281 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
282 
283 #define FLASHCALW_VERSION_OFFSET    0x10         /**< \brief (FLASHCALW_VERSION offset) Flash Controller Version Register */
284 #define FLASHCALW_VERSION_RESETVALUE _U_(0x00000110); /**< \brief (FLASHCALW_VERSION reset_value) Flash Controller Version Register */
285 
286 #define FLASHCALW_VERSION_VERSION_Pos 0            /**< \brief (FLASHCALW_VERSION) Version Number */
287 #define FLASHCALW_VERSION_VERSION_Msk (_U_(0xFFF) << FLASHCALW_VERSION_VERSION_Pos)
288 #define FLASHCALW_VERSION_VERSION(value) (FLASHCALW_VERSION_VERSION_Msk & ((value) << FLASHCALW_VERSION_VERSION_Pos))
289 #define FLASHCALW_VERSION_VARIANT_Pos 16           /**< \brief (FLASHCALW_VERSION) Variant Number */
290 #define FLASHCALW_VERSION_VARIANT_Msk (_U_(0xF) << FLASHCALW_VERSION_VARIANT_Pos)
291 #define FLASHCALW_VERSION_VARIANT(value) (FLASHCALW_VERSION_VARIANT_Msk & ((value) << FLASHCALW_VERSION_VARIANT_Pos))
292 #define FLASHCALW_VERSION_MASK      _U_(0x000F0FFF) /**< \brief (FLASHCALW_VERSION) MASK Register */
293 
294 /* -------- FLASHCALW_FGPFRHI : (FLASHCALW Offset: 0x14) (R/W 32) Flash Controller General Purpose Fuse Register High -------- */
295 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
296 typedef union {
297   struct {
298     uint32_t GPF32:1;          /*!< bit:      0  General Purpose Fuse 32            */
299     uint32_t GPF33:1;          /*!< bit:      1  General Purpose Fuse 33            */
300     uint32_t GPF34:1;          /*!< bit:      2  General Purpose Fuse 34            */
301     uint32_t GPF35:1;          /*!< bit:      3  General Purpose Fuse 35            */
302     uint32_t GPF36:1;          /*!< bit:      4  General Purpose Fuse 36            */
303     uint32_t GPF37:1;          /*!< bit:      5  General Purpose Fuse 37            */
304     uint32_t GPF38:1;          /*!< bit:      6  General Purpose Fuse 38            */
305     uint32_t GPF39:1;          /*!< bit:      7  General Purpose Fuse 39            */
306     uint32_t GPF40:1;          /*!< bit:      8  General Purpose Fuse 40            */
307     uint32_t GPF41:1;          /*!< bit:      9  General Purpose Fuse 41            */
308     uint32_t GPF42:1;          /*!< bit:     10  General Purpose Fuse 42            */
309     uint32_t GPF43:1;          /*!< bit:     11  General Purpose Fuse 43            */
310     uint32_t GPF44:1;          /*!< bit:     12  General Purpose Fuse 44            */
311     uint32_t GPF45:1;          /*!< bit:     13  General Purpose Fuse 45            */
312     uint32_t GPF46:1;          /*!< bit:     14  General Purpose Fuse 46            */
313     uint32_t GPF47:1;          /*!< bit:     15  General Purpose Fuse 47            */
314     uint32_t GPF48:1;          /*!< bit:     16  General Purpose Fuse 48            */
315     uint32_t GPF49:1;          /*!< bit:     17  General Purpose Fuse 49            */
316     uint32_t GPF50:1;          /*!< bit:     18  General Purpose Fuse 50            */
317     uint32_t GPF51:1;          /*!< bit:     19  General Purpose Fuse 51            */
318     uint32_t GPF52:1;          /*!< bit:     20  General Purpose Fuse 52            */
319     uint32_t GPF53:1;          /*!< bit:     21  General Purpose Fuse 53            */
320     uint32_t GPF54:1;          /*!< bit:     22  General Purpose Fuse 54            */
321     uint32_t GPF55:1;          /*!< bit:     23  General Purpose Fuse 55            */
322     uint32_t GPF56:1;          /*!< bit:     24  General Purpose Fuse 56            */
323     uint32_t GPF57:1;          /*!< bit:     25  General Purpose Fuse 57            */
324     uint32_t GPF58:1;          /*!< bit:     26  General Purpose Fuse 58            */
325     uint32_t GPF59:1;          /*!< bit:     27  General Purpose Fuse 59            */
326     uint32_t GPF60:1;          /*!< bit:     28  General Purpose Fuse 60            */
327     uint32_t GPF61:1;          /*!< bit:     29  General Purpose Fuse 61            */
328     uint32_t GPF62:1;          /*!< bit:     30  General Purpose Fuse 62            */
329     uint32_t GPF63:1;          /*!< bit:     31  General Purpose Fuse 63            */
330   } bit;                       /*!< Structure used for bit  access                  */
331   uint32_t reg;                /*!< Type      used for register access              */
332 } FLASHCALW_FGPFRHI_Type;
333 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
334 
335 #define FLASHCALW_FGPFRHI_OFFSET    0x14         /**< \brief (FLASHCALW_FGPFRHI offset) Flash Controller General Purpose Fuse Register High */
336 
337 #define FLASHCALW_FGPFRHI_GPF32_Pos 0            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 32 */
338 #define FLASHCALW_FGPFRHI_GPF32     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF32_Pos)
339 #define FLASHCALW_FGPFRHI_GPF33_Pos 1            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 33 */
340 #define FLASHCALW_FGPFRHI_GPF33     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF33_Pos)
341 #define FLASHCALW_FGPFRHI_GPF34_Pos 2            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 34 */
342 #define FLASHCALW_FGPFRHI_GPF34     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF34_Pos)
343 #define FLASHCALW_FGPFRHI_GPF35_Pos 3            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 35 */
344 #define FLASHCALW_FGPFRHI_GPF35     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF35_Pos)
345 #define FLASHCALW_FGPFRHI_GPF36_Pos 4            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 36 */
346 #define FLASHCALW_FGPFRHI_GPF36     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF36_Pos)
347 #define FLASHCALW_FGPFRHI_GPF37_Pos 5            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 37 */
348 #define FLASHCALW_FGPFRHI_GPF37     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF37_Pos)
349 #define FLASHCALW_FGPFRHI_GPF38_Pos 6            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 38 */
350 #define FLASHCALW_FGPFRHI_GPF38     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF38_Pos)
351 #define FLASHCALW_FGPFRHI_GPF39_Pos 7            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 39 */
352 #define FLASHCALW_FGPFRHI_GPF39     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF39_Pos)
353 #define FLASHCALW_FGPFRHI_GPF40_Pos 8            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 40 */
354 #define FLASHCALW_FGPFRHI_GPF40     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF40_Pos)
355 #define FLASHCALW_FGPFRHI_GPF41_Pos 9            /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 41 */
356 #define FLASHCALW_FGPFRHI_GPF41     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF41_Pos)
357 #define FLASHCALW_FGPFRHI_GPF42_Pos 10           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 42 */
358 #define FLASHCALW_FGPFRHI_GPF42     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF42_Pos)
359 #define FLASHCALW_FGPFRHI_GPF43_Pos 11           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 43 */
360 #define FLASHCALW_FGPFRHI_GPF43     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF43_Pos)
361 #define FLASHCALW_FGPFRHI_GPF44_Pos 12           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 44 */
362 #define FLASHCALW_FGPFRHI_GPF44     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF44_Pos)
363 #define FLASHCALW_FGPFRHI_GPF45_Pos 13           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 45 */
364 #define FLASHCALW_FGPFRHI_GPF45     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF45_Pos)
365 #define FLASHCALW_FGPFRHI_GPF46_Pos 14           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 46 */
366 #define FLASHCALW_FGPFRHI_GPF46     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF46_Pos)
367 #define FLASHCALW_FGPFRHI_GPF47_Pos 15           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 47 */
368 #define FLASHCALW_FGPFRHI_GPF47     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF47_Pos)
369 #define FLASHCALW_FGPFRHI_GPF48_Pos 16           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 48 */
370 #define FLASHCALW_FGPFRHI_GPF48     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF48_Pos)
371 #define FLASHCALW_FGPFRHI_GPF49_Pos 17           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 49 */
372 #define FLASHCALW_FGPFRHI_GPF49     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF49_Pos)
373 #define FLASHCALW_FGPFRHI_GPF50_Pos 18           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 50 */
374 #define FLASHCALW_FGPFRHI_GPF50     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF50_Pos)
375 #define FLASHCALW_FGPFRHI_GPF51_Pos 19           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 51 */
376 #define FLASHCALW_FGPFRHI_GPF51     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF51_Pos)
377 #define FLASHCALW_FGPFRHI_GPF52_Pos 20           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 52 */
378 #define FLASHCALW_FGPFRHI_GPF52     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF52_Pos)
379 #define FLASHCALW_FGPFRHI_GPF53_Pos 21           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 53 */
380 #define FLASHCALW_FGPFRHI_GPF53     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF53_Pos)
381 #define FLASHCALW_FGPFRHI_GPF54_Pos 22           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 54 */
382 #define FLASHCALW_FGPFRHI_GPF54     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF54_Pos)
383 #define FLASHCALW_FGPFRHI_GPF55_Pos 23           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 55 */
384 #define FLASHCALW_FGPFRHI_GPF55     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF55_Pos)
385 #define FLASHCALW_FGPFRHI_GPF56_Pos 24           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 56 */
386 #define FLASHCALW_FGPFRHI_GPF56     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF56_Pos)
387 #define FLASHCALW_FGPFRHI_GPF57_Pos 25           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 57 */
388 #define FLASHCALW_FGPFRHI_GPF57     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF57_Pos)
389 #define FLASHCALW_FGPFRHI_GPF58_Pos 26           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 58 */
390 #define FLASHCALW_FGPFRHI_GPF58     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF58_Pos)
391 #define FLASHCALW_FGPFRHI_GPF59_Pos 27           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 59 */
392 #define FLASHCALW_FGPFRHI_GPF59     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF59_Pos)
393 #define FLASHCALW_FGPFRHI_GPF60_Pos 28           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 60 */
394 #define FLASHCALW_FGPFRHI_GPF60     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF60_Pos)
395 #define FLASHCALW_FGPFRHI_GPF61_Pos 29           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 61 */
396 #define FLASHCALW_FGPFRHI_GPF61     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF61_Pos)
397 #define FLASHCALW_FGPFRHI_GPF62_Pos 30           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 62 */
398 #define FLASHCALW_FGPFRHI_GPF62     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF62_Pos)
399 #define FLASHCALW_FGPFRHI_GPF63_Pos 31           /**< \brief (FLASHCALW_FGPFRHI) General Purpose Fuse 63 */
400 #define FLASHCALW_FGPFRHI_GPF63     (_U_(0x1) << FLASHCALW_FGPFRHI_GPF63_Pos)
401 #define FLASHCALW_FGPFRHI_MASK      _U_(0xFFFFFFFF) /**< \brief (FLASHCALW_FGPFRHI) MASK Register */
402 
403 /* -------- FLASHCALW_FGPFRLO : (FLASHCALW Offset: 0x18) (R/W 32) Flash Controller General Purpose Fuse Register Low -------- */
404 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
405 typedef union {
406   struct {
407     uint32_t LOCK0:1;          /*!< bit:      0  Lock Bit 0                         */
408     uint32_t LOCK1:1;          /*!< bit:      1  Lock Bit 1                         */
409     uint32_t LOCK2:1;          /*!< bit:      2  Lock Bit 2                         */
410     uint32_t LOCK3:1;          /*!< bit:      3  Lock Bit 3                         */
411     uint32_t LOCK4:1;          /*!< bit:      4  Lock Bit 4                         */
412     uint32_t LOCK5:1;          /*!< bit:      5  Lock Bit 5                         */
413     uint32_t LOCK6:1;          /*!< bit:      6  Lock Bit 6                         */
414     uint32_t LOCK7:1;          /*!< bit:      7  Lock Bit 7                         */
415     uint32_t LOCK8:1;          /*!< bit:      8  Lock Bit 8                         */
416     uint32_t LOCK9:1;          /*!< bit:      9  Lock Bit 9                         */
417     uint32_t LOCK10:1;         /*!< bit:     10  Lock Bit 10                        */
418     uint32_t LOCK11:1;         /*!< bit:     11  Lock Bit 11                        */
419     uint32_t LOCK12:1;         /*!< bit:     12  Lock Bit 12                        */
420     uint32_t LOCK13:1;         /*!< bit:     13  Lock Bit 13                        */
421     uint32_t LOCK14:1;         /*!< bit:     14  Lock Bit 14                        */
422     uint32_t LOCK15:1;         /*!< bit:     15  Lock Bit 15                        */
423     uint32_t GPF16:1;          /*!< bit:     16  General Purpose Fuse 16            */
424     uint32_t GPF17:1;          /*!< bit:     17  General Purpose Fuse 17            */
425     uint32_t GPF18:1;          /*!< bit:     18  General Purpose Fuse 18            */
426     uint32_t GPF19:1;          /*!< bit:     19  General Purpose Fuse 19            */
427     uint32_t GPF20:1;          /*!< bit:     20  General Purpose Fuse 20            */
428     uint32_t GPF21:1;          /*!< bit:     21  General Purpose Fuse 21            */
429     uint32_t GPF22:1;          /*!< bit:     22  General Purpose Fuse 22            */
430     uint32_t GPF23:1;          /*!< bit:     23  General Purpose Fuse 23            */
431     uint32_t GPF24:1;          /*!< bit:     24  General Purpose Fuse 24            */
432     uint32_t GPF25:1;          /*!< bit:     25  General Purpose Fuse 25            */
433     uint32_t GPF26:1;          /*!< bit:     26  General Purpose Fuse 26            */
434     uint32_t GPF27:1;          /*!< bit:     27  General Purpose Fuse 27            */
435     uint32_t GPF28:1;          /*!< bit:     28  General Purpose Fuse 28            */
436     uint32_t GPF29:1;          /*!< bit:     29  General Purpose Fuse 29            */
437     uint32_t GPF30:1;          /*!< bit:     30  General Purpose Fuse 30            */
438     uint32_t GPF31:1;          /*!< bit:     31  General Purpose Fuse 31            */
439   } bit;                       /*!< Structure used for bit  access                  */
440   uint32_t reg;                /*!< Type      used for register access              */
441 } FLASHCALW_FGPFRLO_Type;
442 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
443 
444 #define FLASHCALW_FGPFRLO_OFFSET    0x18         /**< \brief (FLASHCALW_FGPFRLO offset) Flash Controller General Purpose Fuse Register Low */
445 
446 #define FLASHCALW_FGPFRLO_LOCK0_Pos 0            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 0 */
447 #define FLASHCALW_FGPFRLO_LOCK0     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK0_Pos)
448 #define FLASHCALW_FGPFRLO_LOCK1_Pos 1            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 1 */
449 #define FLASHCALW_FGPFRLO_LOCK1     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK1_Pos)
450 #define FLASHCALW_FGPFRLO_LOCK2_Pos 2            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 2 */
451 #define FLASHCALW_FGPFRLO_LOCK2     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK2_Pos)
452 #define FLASHCALW_FGPFRLO_LOCK3_Pos 3            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 3 */
453 #define FLASHCALW_FGPFRLO_LOCK3     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK3_Pos)
454 #define FLASHCALW_FGPFRLO_LOCK4_Pos 4            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 4 */
455 #define FLASHCALW_FGPFRLO_LOCK4     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK4_Pos)
456 #define FLASHCALW_FGPFRLO_LOCK5_Pos 5            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 5 */
457 #define FLASHCALW_FGPFRLO_LOCK5     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK5_Pos)
458 #define FLASHCALW_FGPFRLO_LOCK6_Pos 6            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 6 */
459 #define FLASHCALW_FGPFRLO_LOCK6     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK6_Pos)
460 #define FLASHCALW_FGPFRLO_LOCK7_Pos 7            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 7 */
461 #define FLASHCALW_FGPFRLO_LOCK7     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK7_Pos)
462 #define FLASHCALW_FGPFRLO_LOCK8_Pos 8            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 8 */
463 #define FLASHCALW_FGPFRLO_LOCK8     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK8_Pos)
464 #define FLASHCALW_FGPFRLO_LOCK9_Pos 9            /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 9 */
465 #define FLASHCALW_FGPFRLO_LOCK9     (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK9_Pos)
466 #define FLASHCALW_FGPFRLO_LOCK10_Pos 10           /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 10 */
467 #define FLASHCALW_FGPFRLO_LOCK10    (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK10_Pos)
468 #define FLASHCALW_FGPFRLO_LOCK11_Pos 11           /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 11 */
469 #define FLASHCALW_FGPFRLO_LOCK11    (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK11_Pos)
470 #define FLASHCALW_FGPFRLO_LOCK12_Pos 12           /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 12 */
471 #define FLASHCALW_FGPFRLO_LOCK12    (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK12_Pos)
472 #define FLASHCALW_FGPFRLO_LOCK13_Pos 13           /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 13 */
473 #define FLASHCALW_FGPFRLO_LOCK13    (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK13_Pos)
474 #define FLASHCALW_FGPFRLO_LOCK14_Pos 14           /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 14 */
475 #define FLASHCALW_FGPFRLO_LOCK14    (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK14_Pos)
476 #define FLASHCALW_FGPFRLO_LOCK15_Pos 15           /**< \brief (FLASHCALW_FGPFRLO) Lock Bit 15 */
477 #define FLASHCALW_FGPFRLO_LOCK15    (_U_(0x1) << FLASHCALW_FGPFRLO_LOCK15_Pos)
478 #define FLASHCALW_FGPFRLO_GPF16_Pos 16           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 16 */
479 #define FLASHCALW_FGPFRLO_GPF16     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF16_Pos)
480 #define FLASHCALW_FGPFRLO_GPF17_Pos 17           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 17 */
481 #define FLASHCALW_FGPFRLO_GPF17     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF17_Pos)
482 #define FLASHCALW_FGPFRLO_GPF18_Pos 18           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 18 */
483 #define FLASHCALW_FGPFRLO_GPF18     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF18_Pos)
484 #define FLASHCALW_FGPFRLO_GPF19_Pos 19           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 19 */
485 #define FLASHCALW_FGPFRLO_GPF19     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF19_Pos)
486 #define FLASHCALW_FGPFRLO_GPF20_Pos 20           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 20 */
487 #define FLASHCALW_FGPFRLO_GPF20     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF20_Pos)
488 #define FLASHCALW_FGPFRLO_GPF21_Pos 21           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 21 */
489 #define FLASHCALW_FGPFRLO_GPF21     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF21_Pos)
490 #define FLASHCALW_FGPFRLO_GPF22_Pos 22           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 22 */
491 #define FLASHCALW_FGPFRLO_GPF22     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF22_Pos)
492 #define FLASHCALW_FGPFRLO_GPF23_Pos 23           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 23 */
493 #define FLASHCALW_FGPFRLO_GPF23     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF23_Pos)
494 #define FLASHCALW_FGPFRLO_GPF24_Pos 24           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 24 */
495 #define FLASHCALW_FGPFRLO_GPF24     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF24_Pos)
496 #define FLASHCALW_FGPFRLO_GPF25_Pos 25           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 25 */
497 #define FLASHCALW_FGPFRLO_GPF25     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF25_Pos)
498 #define FLASHCALW_FGPFRLO_GPF26_Pos 26           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 26 */
499 #define FLASHCALW_FGPFRLO_GPF26     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF26_Pos)
500 #define FLASHCALW_FGPFRLO_GPF27_Pos 27           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 27 */
501 #define FLASHCALW_FGPFRLO_GPF27     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF27_Pos)
502 #define FLASHCALW_FGPFRLO_GPF28_Pos 28           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 28 */
503 #define FLASHCALW_FGPFRLO_GPF28     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF28_Pos)
504 #define FLASHCALW_FGPFRLO_GPF29_Pos 29           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 29 */
505 #define FLASHCALW_FGPFRLO_GPF29     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF29_Pos)
506 #define FLASHCALW_FGPFRLO_GPF30_Pos 30           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 30 */
507 #define FLASHCALW_FGPFRLO_GPF30     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF30_Pos)
508 #define FLASHCALW_FGPFRLO_GPF31_Pos 31           /**< \brief (FLASHCALW_FGPFRLO) General Purpose Fuse 31 */
509 #define FLASHCALW_FGPFRLO_GPF31     (_U_(0x1) << FLASHCALW_FGPFRLO_GPF31_Pos)
510 #define FLASHCALW_FGPFRLO_MASK      _U_(0xFFFFFFFF) /**< \brief (FLASHCALW_FGPFRLO) MASK Register */
511 
512 /** \brief FLASHCALW APB hardware registers */
513 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
514 typedef struct {
515   __IO uint32_t FCR;         /**< \brief Offset: 0x00 (R/W 32) Flash Controller Control Register */
516   __IO uint32_t FCMD;        /**< \brief Offset: 0x04 (R/W 32) Flash Controller Command Register */
517   __IO uint32_t FSR;         /**< \brief Offset: 0x08 (R/W 32) Flash Controller Status Register */
518   __I  uint32_t FPR;         /**< \brief Offset: 0x0C (R/  32) Flash Controller Parameter Register */
519   __I  uint32_t VERSION;     /**< \brief Offset: 0x10 (R/  32) Flash Controller Version Register */
520   __IO uint32_t FGPFRHI;     /**< \brief Offset: 0x14 (R/W 32) Flash Controller General Purpose Fuse Register High */
521   __IO uint32_t FGPFRLO;     /**< \brief Offset: 0x18 (R/W 32) Flash Controller General Purpose Fuse Register Low */
522 } Flashcalw;
523 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
524 
525 #define SECTION_FLASHCALW_FROW
526 
527 #define SECTION_FLASHCALW_USER
528 
529 /*@}*/
530 
531 /* ************************************************************************** */
532 /**  SOFTWARE PERIPHERAL API DEFINITION FOR NON-VOLATILE FUSES */
533 /* ************************************************************************** */
534 /** \addtogroup fuses_api Peripheral Software API */
535 /*@{*/
536 
537 
538 #define FUSES_BOD18ACTION_ADDR      HFLASHC_USER
539 #define FUSES_BOD18ACTION_Pos       18           /**< \brief (HFLASHC_USER) BOD18 Action */
540 #define FUSES_BOD18ACTION_Msk       (_U_(0x3) << FUSES_BOD18ACTION_Pos)
541 #define FUSES_BOD18ACTION(value)    (FUSES_BOD18ACTION_Msk & ((value) << FUSES_BOD18ACTION_Pos))
542 
543 #define FUSES_BOD18EN_ADDR          HFLASHC_USER
544 #define FUSES_BOD18EN_Pos           17           /**< \brief (HFLASHC_USER) BOD18 Enable */
545 #define FUSES_BOD18EN_Msk           (_U_(0x1) << FUSES_BOD18EN_Pos)
546 
547 #define FUSES_BOD18HYST_ADDR        HFLASHC_USER
548 #define FUSES_BOD18HYST_Pos         20           /**< \brief (HFLASHC_USER) BOD18 Hysteresis */
549 #define FUSES_BOD18HYST_Msk         (_U_(0x1) << FUSES_BOD18HYST_Pos)
550 
551 #define FUSES_BOD18LV_ADDR          HFLASHC_USER
552 #define FUSES_BOD18LV_Pos           11           /**< \brief (HFLASHC_USER) BOD18 Level */
553 #define FUSES_BOD18LV_Msk           (_U_(0x3F) << FUSES_BOD18LV_Pos)
554 #define FUSES_BOD18LV(value)        (FUSES_BOD18LV_Msk & ((value) << FUSES_BOD18LV_Pos))
555 
556 #define FUSES_BOD33ACTION_ADDR      HFLASHC_USER
557 #define FUSES_BOD33ACTION_Pos       8            /**< \brief (HFLASHC_USER) BOD33 Action */
558 #define FUSES_BOD33ACTION_Msk       (_U_(0x3) << FUSES_BOD33ACTION_Pos)
559 #define FUSES_BOD33ACTION(value)    (FUSES_BOD33ACTION_Msk & ((value) << FUSES_BOD33ACTION_Pos))
560 
561 #define FUSES_BOD33EN_ADDR          HFLASHC_USER
562 #define FUSES_BOD33EN_Pos           7            /**< \brief (HFLASHC_USER) BOD33 Enable */
563 #define FUSES_BOD33EN_Msk           (_U_(0x1) << FUSES_BOD33EN_Pos)
564 
565 #define FUSES_BOD33LEVEL_ADDR       HFLASHC_USER
566 #define FUSES_BOD33LEVEL_Pos        1            /**< \brief (HFLASHC_USER) BOD33 Level */
567 #define FUSES_BOD33LEVEL_Msk        (_U_(0x3F) << FUSES_BOD33LEVEL_Pos)
568 #define FUSES_BOD33LEVEL(value)     (FUSES_BOD33LEVEL_Msk & ((value) << FUSES_BOD33LEVEL_Pos))
569 
570 #define FUSES_BOD33_HYST_ADDR       HFLASHC_USER
571 #define FUSES_BOD33_HYST_Pos        10           /**< \brief (HFLASHC_USER) BOD33 Hysteresis */
572 #define FUSES_BOD33_HYST_Msk        (_U_(0x1) << FUSES_BOD33_HYST_Pos)
573 
574 #define WDT_FUSES_WDTAUTO_ADDR      HFLASHC_USER
575 #define WDT_FUSES_WDTAUTO_Pos       0            /**< \brief (HFLASHC_USER) Watchdog Enabled at Reset */
576 #define WDT_FUSES_WDTAUTO_Msk       (_U_(0x1) << WDT_FUSES_WDTAUTO_Pos)
577 
578 /*@}*/
579 
580 #endif /* _SAM4L_FLASHCALW_COMPONENT_ */
581