OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [cortexm/] [kinetis/] [var/] [current/] [include/] [var_io.h] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
#ifndef CYGONCE_HAL_VAR_IO_H
2
#define CYGONCE_HAL_VAR_IO_H
3
//===========================================================================
4
//
5
//      var_io.h
6
//
7
//      Variant specific registers
8
//
9
//===========================================================================
10
// ####ECOSGPLCOPYRIGHTBEGIN####                                            
11
// -------------------------------------------                              
12
// This file is part of eCos, the Embedded Configurable Operating System.   
13
// Copyright (C) 2011 Free Software Foundation, Inc.                        
14
//
15
// eCos is free software; you can redistribute it and/or modify it under    
16
// the terms of the GNU General Public License as published by the Free     
17
// Software Foundation; either version 2 or (at your option) any later      
18
// version.                                                                 
19
//
20
// eCos is distributed in the hope that it will be useful, but WITHOUT      
21
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or    
22
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License    
23
// for more details.                                                        
24
//
25
// You should have received a copy of the GNU General Public License        
26
// along with eCos; if not, write to the Free Software Foundation, Inc.,    
27
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.            
28
//
29
// As a special exception, if other files instantiate templates or use      
30
// macros or inline functions from this file, or you compile this file      
31
// and link it with other works to produce a work based on this file,       
32
// this file does not by itself cause the resulting work to be covered by   
33
// the GNU General Public License. However the source code for this file    
34
// must still be made available in accordance with section (3) of the GNU   
35
// General Public License v2.                                               
36
//
37
// This exception does not invalidate any other reasons why a work based    
38
// on this file might be covered by the GNU General Public License.         
39
// -------------------------------------------                              
40
// ####ECOSGPLCOPYRIGHTEND####                                              
41
//===========================================================================
42
//#####DESCRIPTIONBEGIN####
43
//
44
// Author(s):     Ilija Kocho <ilijak@siva.com.mk>
45
// Date:          2011-02-05
46
// Purpose:       Kinetis variant specific registers
47
// Description:
48
// Usage:         #include <cyg/hal/var_io.h>
49
//
50
//####DESCRIPTIONEND####
51
//
52
//===========================================================================
53
 
54
#include <pkgconf/hal_cortexm_kinetis.h>
55
 
56
#include <cyg/hal/plf_io.h>
57
 
58
//===========================================================================
59
// Cortex-M architecture
60
//---------------------------------------------------------------------------
61
//--------------------------------------------------------------------------
62
// Cortex-M architecture overrides
63
//---------------------------------------------------------------------------
64
// VTOR - Vector Table Offset Register
65
#ifndef CYGARC_REG_NVIC_VTOR_TBLBASE_SRAM
66
# ifdef CYGHWR_HAL_CORTEXM_KINETIS_SRAM_UNIFIED
67
#  define CYGARC_REG_NVIC_VTOR_TBLBASE_SRAM  (BIT_(29) - \
68
                                             CYGHWR_HAL_KINETIS_SRAM_BANK_SIZE)
69
# else
70
#  define CYGARC_REG_NVIC_VTOR_TBLBASE_SRAM  BIT_(29)
71
# endif
72
#endif
73
 
74
//=============================================================================
75
// Kinetis system configuration
76
//---------------------------------------------------------------------------
77
// Utilize Freescale Kinetis flash between startup vectors and 0x400
78
// for misc funtions.
79
#ifdef CYGOPT_HAL_KINETIS_MISC_FLASH_SECTION
80
# define CYGOPT_HAL_KINETIS_MISC_FLASH_SECTION_ATTR \
81
         CYGBLD_ATTRIB_SECTION(".kinetis_misc")
82
#else
83
# define CYGOPT_HAL_KINETIS_MISC_FLASH_SECTION_ATTR
84
#endif
85
 
86
//===========================================================================
87
// KINETIS FLASH configuration field
88
//===========================================================================
89
 
90
// Note: KINETIS FLASH configuration field must be present in Kinetis flash
91
//       image and ocupy addresses 0x00000400 to 0x0000040f.
92
 
93
typedef struct cyghwr_hal_kinetis_flash_conf_s {
94
    cyg_uint8 backdoor_key[8]; // 0x400 .. 0x407
95
    cyg_uint8 fprot[4];        // 0x408 .. 0x40b
96
    cyg_uint8 fsec;            // 0x40c
97
    cyg_uint8 fopt;            // 0x40d
98
    cyg_uint8 feprot;          // 0x40e
99
    cyg_uint8 fdprot;          // 0x40f
100
} cyghwr_hal_kinetis_flash_conf_t;
101
 
102
__externC const cyghwr_hal_kinetis_flash_conf_t *hal_kinetis_flash_conf_p( void );
103
 
104
//===========================================================================
105
// Kinetis Peripherals
106
//---------------------------------------------------------------------------
107
// Oscillator
108
 
109
#define CYGHWR_HAL_KINETIS_OSC_CR          (0x40065000)
110
#define CYGHWR_HAL_KINETIS_OSC_CR_P        ((volatile cyg_uint8*) 0x40065000)
111
 
112
#define CYGHWR_HAL_KINETIS_OSC_CR_SC16P_M      0x01
113
#define CYGHWR_HAL_KINETIS_OSC_CR_SC16P_S         0
114
#define CYGHWR_HAL_KINETIS_OSC_CR_SC8P_M       0x02
115
#define CYGHWR_HAL_KINETIS_OSC_CR_SC8P_S          1
116
#define CYGHWR_HAL_KINETIS_OSC_CR_SC4P_M       0x04
117
#define CYGHWR_HAL_KINETIS_OSC_CR_SC4P_S          2
118
#define CYGHWR_HAL_KINETIS_OSC_CR_SC2P_M       0x08
119
#define CYGHWR_HAL_KINETIS_OSC_CR_SC2P_S          3
120
#define CYGHWR_HAL_KINETIS_OSC_CR_EREFSTEN_M   0x20
121
#define CYGHWR_HAL_KINETIS_OSC_CR_EREFSTEN_S      5
122
#define CYGHWR_HAL_KINETIS_OSC_CR_ERCLKEN_M    0x80
123
#define CYGHWR_HAL_KINETIS_OSC_CR_ERCLKEN_S       7
124
 
125
//---------------------------------------------------------------------------
126
// MCG
127
 
128
typedef volatile struct cyghwr_hal_kinetis_mcg_s {
129
    cyg_uint8 c1;      // MCG Control 1 Register
130
    cyg_uint8 c2;      // MCG Control 2 Register
131
    cyg_uint8 c3;      // MCG Control 3 Register
132
    cyg_uint8 c4;      // MCG Control 4 Register
133
    cyg_uint8 c5;      // MCG Control 5 Register
134
    cyg_uint8 c6;      // MCG Control 6 Register
135
    cyg_uint8 status;  // MCG Status Register
136
    cyg_uint8 mcg_res0;
137
    cyg_uint8 atc;     // MCG Auto Trim Control Register
138
    cyg_uint8 mcg_res1;
139
    cyg_uint8 atcvh;   // MCG Auto Trim Compare Value High Register
140
    cyg_uint8 atcvl;   // MCG Auto Trim Compare Value Low Register
141
} cyghwr_hal_kinetis_mcg_t;
142
 
143
#define CYGHWR_HAL_KINETIS_MCG_P  ((cyghwr_hal_kinetis_mcg_t *)0x40064000)
144
 
145
// C1 Bit Fields
146
#define CYGHWR_HAL_KINETIS_MCG_C1_IREFSTEN_M    0x01
147
#define CYGHWR_HAL_KINETIS_MCG_C1_IREFSTEN_S    0
148
#define CYGHWR_HAL_KINETIS_MCG_C1_IRCLKEN_M     0x02
149
#define CYGHWR_HAL_KINETIS_MCG_C1_IRCLKEN_S     1
150
#define CYGHWR_HAL_KINETIS_MCG_C1_IREFS_M       0x4
151
#define CYGHWR_HAL_KINETIS_MCG_C1_IREFS_S       2
152
#define CYGHWR_HAL_KINETIS_MCG_C1_FRDIV_M       0x38
153
#define CYGHWR_HAL_KINETIS_MCG_C1_FRDIV_S       3
154
#define CYGHWR_HAL_KINETIS_MCG_C1_FRDIV(_div_)  \
155
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C1_FRDIV_S, _div_)
156
#define CYGHWR_HAL_KINETIS_MCG_C1_CLKS_M        0xC0
157
#define CYGHWR_HAL_KINETIS_MCG_C1_CLKS_S        6
158
#define CYGHWR_HAL_KINETIS_MCG_C1_CLKS(_clks_)  \
159
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C1_CLKS_S, _clks_)
160
enum {
161
    CYGHWR_HAL_KINETIS_MCG_C1_CLKS_FLL_PLL,
162
    CYGHWR_HAL_KINETIS_MCG_C1_CLKS_INT_REF,
163
    CYGHWR_HAL_KINETIS_MCG_C1_CLKS_EXT_REF,
164
    CYGHWR_HAL_KINETIS_MCG_C1_CLKS_RESERVED
165
};
166
// C2 Bit Fields
167
#define CYGHWR_HAL_KINETIS_MCG_C2_IRCS_M        0x01
168
#define CYGHWR_HAL_KINETIS_MCG_C2_IRCS_S        0
169
#define CYGHWR_HAL_KINETIS_MCG_C2_LP_M          0x02
170
#define CYGHWR_HAL_KINETIS_MCG_C2_LP_S          1
171
#define CYGHWR_HAL_KINETIS_MCG_C2_EREFS_M       0x04
172
#define CYGHWR_HAL_KINETIS_MCG_C2_EREFS_S       2
173
#define CYGHWR_HAL_KINETIS_MCG_C2_HGO_M         0x08
174
#define CYGHWR_HAL_KINETIS_MCG_C2_HGO_S         3
175
#define CYGHWR_HAL_KINETIS_MCG_C2_RANGE_M       0x30
176
#define CYGHWR_HAL_KINETIS_MCG_C2_RANGE_S       4
177
#define CYGHWR_HAL_KINETIS_MCG_C2_RANGE(__v)    \
178
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C2_RANGE_S, __v)
179
// C3 Bit Fields
180
#define CYGHWR_HAL_KINETIS_MCG_C3_SCTRIM_M      0xFF
181
#define CYGHWR_HAL_KINETIS_MCG_C3_SCTRIM_S      0
182
#define CYGHWR_HAL_KINETIS_MCG_C3_SCTRIM(__v)   \
183
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C3_SCTRIM_S, __v)
184
// C4 Bit Fields
185
#define CYGHWR_HAL_KINETIS_MCG_C4_SCFTRIM_M     0x01
186
#define CYGHWR_HAL_KINETIS_MCG_C4_SCFTRIM_S     0
187
#define CYGHWR_HAL_KINETIS_MCG_C4_FCTRIM_M      0x1E
188
#define CYGHWR_HAL_KINETIS_MCG_C4_FCTRIM_S      1
189
#define CYGHWR_HAL_KINETIS_MCG_C4_FCTRIM(__v)   \
190
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C4_FCTRIM_S, __v)
191
#define CYGHWR_HAL_KINETIS_MCG_C4_DRST_DRS_M    0x60
192
#define CYGHWR_HAL_KINETIS_MCG_C4_DRST_DRS_S    5
193
#define CYGHWR_HAL_KINETIS_MCG_C4_DRST_DRS(__v) \
194
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C4_DRST_DRS_S, __v)
195
#define CYGHWR_HAL_KINETIS_MCG_C4_DMX32_M       0x80
196
#define CYGHWR_HAL_KINETIS_MCG_C4_DMX32_S       7
197
// C5 Bit Fields
198
#define CYGHWR_HAL_KINETIS_MCG_C5_PRDIV_M       0x1F
199
#define CYGHWR_HAL_KINETIS_MCG_C5_PRDIV_S       0
200
#define CYGHWR_HAL_KINETIS_MCG_C5_PRDIV(__v)    \
201
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C5_PRDIV_S, __v)
202
#define CYGHWR_HAL_KINETIS_MCG_C5_PLLSTEN_M     0x20
203
#define CYGHWR_HAL_KINETIS_MCG_C5_PLLSTEN_S     5
204
#define CYGHWR_HAL_KINETIS_MCG_C5_PLLCLKEN_M    0x40
205
#define CYGHWR_HAL_KINETIS_MCG_C5_PLLCLKEN_S    6
206
// C6 Bit Fields
207
#define CYGHWR_HAL_KINETIS_MCG_C6_VDIV_M        0x1F
208
#define CYGHWR_HAL_KINETIS_MCG_C6_VDIV_S        0
209
#define CYGHWR_HAL_KINETIS_MCG_C6_VDIV(__v)     \
210
        VALUE_(CYGHWR_HAL_KINETIS_MCG_C6_VDIV_S, __v)
211
#define CYGHWR_HAL_KINETIS_MCG_C6_CME_M         0x20
212
#define CYGHWR_HAL_KINETIS_MCG_C6_CME_S         5
213
#define CYGHWR_HAL_KINETIS_MCG_C6_PLLS_M        0x40
214
#define CYGHWR_HAL_KINETIS_MCG_C6_PLLS_S        6
215
#define CYGHWR_HAL_KINETIS_MCG_C6_LOLIE_M       0x80
216
#define CYGHWR_HAL_KINETIS_MCG_C6_LOLIE_S       7
217
// S Bit Fields
218
#define CYGHWR_HAL_KINETIS_MCG_S_IRCST_M        0x01
219
#define CYGHWR_HAL_KINETIS_MCG_S_IRCST_S        0
220
#define CYGHWR_HAL_KINETIS_MCG_S_OSCINIT_M      0x02
221
#define CYGHWR_HAL_KINETIS_MCG_S_OSCINIT_S      1
222
#define CYGHWR_HAL_KINETIS_MCG_S_CLKST_M        0x0C
223
#define CYGHWR_HAL_KINETIS_MCG_S_CLKST_S        2
224
#define CYGHWR_HAL_KINETIS_MCG_S_CLKST(__v)     \
225
        VALUE_(CYGHWR_HAL_KINETIS_MCG_S_CLKST_S, __v)
226
#define CYGHWR_HAL_KINETIS_MCG_S_CLKST_FLL  CYGHWR_HAL_KINETIS_MCG_S_CLKST(0)
227
#define CYGHWR_HAL_KINETIS_MCG_S_CLKST_INT  CYGHWR_HAL_KINETIS_MCG_S_CLKST(1)
228
#define CYGHWR_HAL_KINETIS_MCG_S_CLKST_EXT  CYGHWR_HAL_KINETIS_MCG_S_CLKST(2)
229
#define CYGHWR_HAL_KINETIS_MCG_S_CLKST_PLL  CYGHWR_HAL_KINETIS_MCG_S_CLKST(3)
230
#define CYGHWR_HAL_KINETIS_MCG_S_IREFST_M       0x10
231
#define CYGHWR_HAL_KINETIS_MCG_S_IREFST_S       4
232
#define CYGHWR_HAL_KINETIS_MCG_S_PLLST_M        0x20
233
#define CYGHWR_HAL_KINETIS_MCG_S_PLLST_S        5
234
#define CYGHWR_HAL_KINETIS_MCG_S_LOCK_M         0x40
235
#define CYGHWR_HAL_KINETIS_MCG_S_LOCK_S         6
236
#define CYGHWR_HAL_KINETIS_MCG_S_LOLS_M         0x80
237
#define CYGHWR_HAL_KINETIS_MCG_S_LOLS_S         7
238
// ATC Bit Fields
239
#define CYGHWR_HAL_KINETIS_MCG_ATC_ATMF_M       0x20
240
#define CYGHWR_HAL_KINETIS_MCG_ATC_ATMF_S       5
241
#define CYGHWR_HAL_KINETIS_MCG_ATC_ATMS_M       0x40
242
#define CYGHWR_HAL_KINETIS_MCG_ATC_ATMS_S       6
243
#define CYGHWR_HAL_KINETIS_MCG_ATC_ATME_M       0x80
244
#define CYGHWR_HAL_KINETIS_MCG_ATC_ATME_S       7
245
// ATCVH Bit Fields
246
#define CYGHWR_HAL_KINETIS_MCG_ATCVH_ATCVH_M    0xFF
247
#define CYGHWR_HAL_KINETIS_MCG_ATCVH_ATCVH_S    0
248
#define CYGHWR_HAL_KINETIS_MCG_ATCVH_ATCVH(__v) \
249
        VALUE_(CYGHWR_HAL_KINETIS_MCG_ATCVH_ATCVH_S, __v)
250
// ATCVL Bit Fields
251
#define CYGHWR_HAL_KINETIS_MCG_ATCVL_ATCVL_M    0xFF
252
#define CYGHWR_HAL_KINETIS_MCG_ATCVL_ATCVL_S    0
253
#define CYGHWR_HAL_KINETIS_MCG_ATCVL_ATCVL(__v) \
254
        VALUE_(CYGHWR_HAL_KINETIS_MCG_ATCVL_ATCVL_S, __v)
255
 
256
//---------------------------------------------------------------------------
257
// Real Time Clock
258
 
259
typedef volatile struct cyghwr_hal_kinetis_rtc_s {
260
    cyg_uint32 tsr;                    // Time Seconds Register
261
    cyg_uint32 tpr;                    // Time Prescaler Register
262
    cyg_uint32 tar;                    // Time Alarm Register
263
    cyg_uint32 tcr;                    // Time Compensation Register
264
    cyg_uint32 cr;                     // Control Register
265
    cyg_uint32 sr;                     // Status Register
266
    cyg_uint32 lr;                     // Lock Register
267
    cyg_uint32 ier;                    // Enterrupt Enable Register
268
    cyg_uint8  reserved[2016];
269
    cyg_uint32 war;                    // Write Access Register
270
    cyg_uint32 rar;                    // Read Access Register
271
} cyghwr_hal_kinetis_rtc_t;
272
 
273
#define CYGHWR_HAL_KINETIS_RTC_P   ((cyghwr_hal_kinetis_rtc_t *)0x4003D000)
274
 
275
#define CYGHWR_HAL_KINETIS_RTC_TCR_TCR_M (0x000000FF)
276
#define CYGHWR_HAL_KINETIS_RTC_TCR_CIR_S 8
277
#define CYGHWR_HAL_KINETIS_RTC_TCR_CIR(__val) \
278
        VALUE_(CYGHWR_HAL_KINETIS_RTC_TCR_CIR_S, _div_)
279
#define CYGHWR_HAL_KINETIS_RTC_TCR_CIC_S 16
280
#define CYGHWR_HAL_KINETIS_RTC_TCR_TCV_S 24
281
 
282
#define CYGHWR_HAL_KINETIS_RTC_CR_SWR  BIT_(0)
283
#define CYGHWR_HAL_KINETIS_RTC_CR_WPE  BIT_(1)
284
#define CYGHWR_HAL_KINETIS_RTC_CR_SUP  BIT_(2)
285
#define CYGHWR_HAL_KINETIS_RTC_CR_UM   BIT_(3)
286
#define CYGHWR_HAL_KINETIS_RTC_CR_OSCE BIT_(8)
287
#define CYGHWR_HAL_KINETIS_RTC_CR_CLKO BIT_(9)
288
#define CYGHWR_HAL_KINETIS_RTC_CR_SCP \
289
        VALUE_(10, (CYGHWR_HAL_CORTEXM_KINETIS_RTC_OSC_CAP/2))
290
 
291
#define CYGHWR_HAL_KINETIS_RTC_SR_TCE BIT_(4)
292
#define CYGHWR_HAL_KINETIS_RTC_SR_TAF BIT_(2)
293
#define CYGHWR_HAL_KINETIS_RTC_SR_TOF BIT_(1)
294
#define CYGHWR_HAL_KINETIS_RTC_SR_TIF BIT_(0)
295
 
296
//---------------------------------------------------------------------------
297
// Watch dog
298
 
299
// WDOG - Peripheral register structure
300
typedef volatile struct CygHwr_HAL_Kinetis_wdog_s {
301
    cyg_uint16 StCtrlH;    // Status and Control Register High
302
    cyg_uint16 StCtrlL;    // Status and Control Register Low
303
    cyg_uint16 ToValH;     // Time-out Value Register High
304
    cyg_uint16 ToValL;     // Time-out Value Register Low
305
    cyg_uint16 WinH;       // Window Register High
306
    cyg_uint16 WinL;       // Window Register Low
307
    cyg_uint16 Refresh;    // Refresh Register
308
    cyg_uint16 Unlock;     // Unlock Register
309
    cyg_uint16 TmrOutH;    // Timer Output Register High
310
    cyg_uint16 TmrOutL;    // Timer Output Register Low
311
    cyg_uint16 RstCnt;     // Reset Count Register
312
    cyg_uint16 Presc;      // Prescaler Register
313
} CygHwr_HAL_Kinetis_wdog_t;
314
 
315
#define CYGHWR_HAL_KINETIS_WDOG_P ((CygHwr_HAL_Kinetis_wdog_t *)0x40052000)
316
 
317
// STCTRLH Bit Fields
318
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_WDOGEN_M          0x0001
319
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_WDOGEN_S          0
320
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_CLKSRC_M          0x0002
321
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_CLKSRC_S          1
322
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_IRQRSTEN_M        0x0004
323
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_IRQRSTEN_S        2
324
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_WINEN_M           0x0008
325
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_WINEN_S           3
326
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_ALLOWUPDATE_M     0x0010
327
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_ALLOWUPDATE_S     4
328
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_DBGEN_M           0x0020
329
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_DBGEN_S           5
330
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_STOPEN_M          0x0040
331
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_STOPEN_S          6
332
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_WAITEN_M          0x0080
333
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_WAITEN_S          7
334
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_STNDBYEN_M        0x0100
335
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_STNDBYEN_S        8
336
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_TESTWDOG_M        0x0400
337
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_TESTWDOG_S        10
338
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_TESTSEL_M         0x0800
339
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_TESTSEL_S         11
340
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_BYTESEL_M         0x3000
341
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_BYTESEL_S         12
342
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_BYTESEL(__v)      \
343
        VALUE(CYGHWR_HAL_KINETIS_WDOG_STCTRLH_BYTESEL_S, __v)
344
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_DISTESTWDOG_M     0x4000
345
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLH_DISTESTWDOG_S     14
346
// STCTRLL Bit Fields
347
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLL_INTFLG_M          0x8000
348
#define CYGHWR_HAL_KINETIS_WDOG_STCTRLL_INTFLG_S          15
349
// TOVALH Bit Fields
350
#define CYGHWR_HAL_KINETIS_WDOG_TOVALH_TOVALHIGH_M        0xFFFF
351
#define CYGHWR_HAL_KINETIS_WDOG_TOVALH_TOVALHIGH_S        0
352
#define CYGHWR_HAL_KINETIS_WDOG_TOVALH_TOVALHIGH(__v)     \
353
        VALUE(CYGHWR_HAL_KINETIS_WDOG_TOVALH_TOVALHIGH_S, __v)
354
// TOVALL Bit Fields
355
#define CYGHWR_HAL_KINETIS_WDOG_TOVALL_TOVALLOW_M         0xFFFF
356
#define CYGHWR_HAL_KINETIS_WDOG_TOVALL_TOVALLOW_S         0
357
#define CYGHWR_HAL_KINETIS_WDOG_TOVALL_TOVALLOW(__v)      \
358
        VALUE(CYGHWR_HAL_KINETIS_WDOG_TOVALL_TOVALLOW_S, __v)
359
// WINH Bit Fields
360
#define CYGHWR_HAL_KINETIS_WDOG_WINH_WINHIGH_M            0xFFFF
361
#define CYGHWR_HAL_KINETIS_WDOG_WINH_WINHIGH_S            0
362
#define CYGHWR_HAL_KINETIS_WDOG_WINH_WINHIGH(__v)         \
363
        VALUE(CYGHWR_HAL_KINETIS_WDOG_WINH_WINHIGH_S, __v)
364
// WINL Bit Fields
365
#define CYGHWR_HAL_KINETIS_WDOG_WINL_WINLOW_M             0xFFFF
366
#define CYGHWR_HAL_KINETIS_WDOG_WINL_WINLOW_S             0
367
#define CYGHWR_HAL_KINETIS_WDOG_WINL_WINLOW(__v)          \
368
        VALUE(CYGHWR_HAL_KINETIS_WDOG_WINL_WINLOW_S, __v)
369
// REFRESH Bit Fields
370
#define CYGHWR_HAL_KINETIS_WDOG_REFRESH_WDOGREFRESH_M     0xFFFF
371
#define CYGHWR_HAL_KINETIS_WDOG_REFRESH_WDOGREFRESH_S     0
372
#define CYGHWR_HAL_KINETIS_WDOG_REFRESH_WDOGREFRESH(__v)  \
373
        VALUE(CYGHWR_HAL_KINETIS_WDOG_REFRESH_WDOGREFRESH_S, __v)
374
// UNLOCK Bit Fields
375
#define CYGHWR_HAL_KINETIS_WDOG_UNLOCK_WDOGUNLOCK_M       0xFFFF
376
#define CYGHWR_HAL_KINETIS_WDOG_UNLOCK_WDOGUNLOCK_S       0
377
#define CYGHWR_HAL_KINETIS_WDOG_UNLOCK_WDOGUNLOCK(__v)    \
378
        VALUE(CYGHWR_HAL_KINETIS_WDOG_UNLOCK_WDOGUNLOCK_S, __v)
379
// TMROUTH Bit Fields
380
#define CYGHWR_HAL_KINETIS_WDOG_TMROUTH_TIMEROUTHIGH_M    0xFFFF
381
#define CYGHWR_HAL_KINETIS_WDOG_TMROUTH_TIMEROUTHIGH_S    0
382
#define CYGHWR_HAL_KINETIS_WDOG_TMROUTH_TIMEROUTHIGH(__v) \
383
        VALUE(CYGHWR_HAL_KINETIS_WDOG_TMROUTH_TIMEROUTHIGH_S, __v)
384
// TMROUTL Bit Fields
385
#define CYGHWR_HAL_KINETIS_WDOG_TMROUTL_TIMEROUTLOW_M     0xFFFF
386
#define CYGHWR_HAL_KINETIS_WDOG_TMROUTL_TIMEROUTLOW_S     0
387
#define CYGHWR_HAL_KINETIS_WDOG_TMROUTL_TIMEROUTLOW(__v)  \
388
        VALUE(CYGHWR_HAL_KINETIS_WDOG_TMROUTL_TIMEROUTLOW_S, __v)
389
// RSTCNT Bit Fields
390
#define CYGHWR_HAL_KINETIS_WDOG_RSTCNT_RSTCNT_M           0xFFFF
391
#define CYGHWR_HAL_KINETIS_WDOG_RSTCNT_RSTCNT_S           0
392
#define CYGHWR_HAL_KINETIS_WDOG_RSTCNT_RSTCNT(__v)        \
393
        VALUE(CYGHWR_HAL_KINETIS_WDOG_RSTCNT_RSTCNT_S, __v)
394
// PRESC Bit Fields
395
#define CYGHWR_HAL_KINETIS_WDOG_PRESC_PRESCVAL_M          0x700
396
#define CYGHWR_HAL_KINETIS_WDOG_PRESC_PRESCVAL_S          8
397
#define CYGHWR_HAL_KINETIS_WDOG_PRESC_PRESCVAL(__v)       \
398
        VALUE(CYGHWR_HAL_KINETIS_WDOG_PRESC_PRESCVAL_S, __v)
399
 
400
#ifndef __ASSEMBLER__
401
 
402
__externC void hal_wdog_unlock(volatile CygHwr_HAL_Kinetis_wdog_t *wdog_p);
403
__externC void hal_wdog_disable(void);
404
 
405
#endif // __ASSEMBLER__
406
 
407
//---------------------------------------------------------------------------
408
// SIM - System Integration Module
409
 
410
// SIM - Peripheral register structure
411
typedef volatile struct cyghwr_hal_kinetis_sim_s {
412
    cyg_uint32 sopt1;           // System Options Register 1
413
    cyg_uint8  reserved_0[4096];
414
    cyg_uint32 sopt2;           // System Options Register 2
415
    cyg_uint8  reserved_1[4];
416
    cyg_uint32 sopt4;           // System Options Register 4
417
    cyg_uint32 sopt5;           // System Options Register 5
418
    cyg_uint32 sopt6;           // System Options Register 6
419
    cyg_uint32 sopt7;           // System Options Register 7
420
    cyg_uint8  Reserved_2[8];
421
    cyg_uint32 sdid;            // System Device Identification Register
422
    cyg_uint32 scgc1;           // System Clock Gating Control Register 1
423
    cyg_uint32 scgc2;           // System Clock Gating Control Register 2
424
    cyg_uint32 scgc3;           // System Clock Gating Control Register 3
425
    cyg_uint32 scgc4;           // System Clock Gating Control Register 4
426
    cyg_uint32 scgc5;           // System Clock Gating Control Register 5
427
    cyg_uint32 scgc6;           // System Clock Gating Control Register 6
428
    cyg_uint32 scgc7;           // System Clock Gating Control Register 7
429
    cyg_uint32 clk_div1;        // System Clock Divider Register 1
430
    cyg_uint32 clk_div2;        // System Clock Divider Register 2
431
    cyg_uint32 fcfg1;           // Flash Configuration Register 1
432
    cyg_uint32 fcfg2;           // Flash Configuration Register 2
433
    cyg_uint32 uidh;            // Unique Identification Register High
434
    cyg_uint32 uidmh;           // Unique Identification Register Mid-High
435
    cyg_uint32 uidml;           // Unique Identification Register Mid Low
436
    cyg_uint32 uidl;            // Unique Identification Register Low
437
} cyghwr_hal_kinetis_sim_t;
438
 
439
#define CYGHWR_HAL_KINETIS_SIM_P ((cyghwr_hal_kinetis_sim_t *) 0x40047000)
440
 
441
// SOPT1 Bit Fields
442
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_RAMSIZE_M         0xF000
443
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_RAMSIZE_S         12
444
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_RAMSIZE(__val)    \
445
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT1_RAMSIZE_S, __val)
446
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_OSC32KSEL_M       0x80000
447
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_OSC32KSEL_S       19
448
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_MS_M              0x800000
449
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_MS_S              23
450
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_USBSTBY_M         0x40000000
451
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_USBSTBY_S         30
452
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_USBREGEN_M        0x80000000
453
#define CYGHWR_HAL_KINETIS_SIM_SOPT1_USBREGEN_S        31
454
// SOPT2 Bit Fields
455
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_MCGCLKSEL_M       0x1
456
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_MCGCLKSEL_S       0
457
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_FBSL_M            0x300
458
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_FBSL_S            8
459
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_FBSL(__val)       \
460
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT2_FBSL_S, __val)
461
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_CMTUARTPAD_M      0x800
462
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_CMTUARTPAD_S      11
463
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_TRACECLKSEL_M     0x1000
464
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_TRACECLKSEL_S     12
465
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_PLLFLLSEL_M       0x10000
466
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_PLLFLLSEL_S       16
467
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_USBSRC_M          0x40000
468
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_USBSRC_S          18
469
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_TIMESRC_M         0x300000
470
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_TIMESRC_S         20
471
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_TIMESRC(__val)    \
472
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT2_TIMESRC_S, __val)
473
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_I2SSRC_M          0x3000000
474
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_I2SSRC_S          24
475
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_I2SSRC(__val)     \
476
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT2_I2SSRC_S, __val)
477
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_SDHCSRC_M         0x30000000
478
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_SDHCSRC_S         28
479
#define CYGHWR_HAL_KINETIS_SIM_SOPT2_SDHCSRC(__val)    \
480
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT2_SDHCSRC_S, __val)
481
// SOPT4 Bit Fields
482
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0FLT0_M        0x1
483
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0FLT0_S        0
484
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0FLT1_M        0x2
485
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0FLT1_S        1
486
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0FLT2_M        0x4
487
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0FLT2_S        2
488
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1FLT0_M        0x10
489
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1FLT0_S        4
490
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2FLT0_M        0x100
491
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2FLT0_S        8
492
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1CH0SRC_M      0xC0000
493
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1CH0SRC_S      18
494
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1CH0SRC(__val) \
495
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1CH0SRC_S, __val)
496
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2CH0SRC_M      0x300000
497
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2CH0SRC_S      20
498
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2CH0SRC(__val) \
499
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2CH0SRC_S, __val)
500
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0CLKSEL_M      0x1000000
501
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM0CLKSEL_S      24
502
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1CLKSEL_M      0x2000000
503
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM1CLKSEL_S      25
504
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2CLKSEL_M      0x4000000
505
#define CYGHWR_HAL_KINETIS_SIM_SOPT4_FTM2CLKSEL_S      26
506
// SOPT5 Bit Fields
507
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0TXSRC_M      0x3
508
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0TXSRC_S      0
509
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0TXSRC(__val) \
510
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0TXSRC_S, __val)
511
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0RXSRC_M      0xC
512
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0RXSRC_S      2
513
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0RXSRC(__val) \
514
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT5_UART0RXSRC_S, __val)
515
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UARTTXSRC_M       0x30
516
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UARTTXSRC_S       4
517
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UARTTXSRC(__val)  \
518
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT5_UARTTXSRC_S, __val)
519
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART1RXSRC_M      0xC0
520
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART1RXSRC_S      6
521
#define CYGHWR_HAL_KINETIS_SIM_SOPT5_UART1RXSRC(__val) \
522
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT5_UART1RXSRC_S, __val)
523
// SOPT6 Bit Fields
524
#define CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTSEL_M       0x1F000000
525
#define CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTSEL_S       24
526
#define CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTSEL(__val)  \
527
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTSEL_S, __val)
528
#define CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTEN_M        0xE0000000
529
#define CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTEN_S        29
530
#define CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTEN(__val)   \
531
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT6_RSTFLTEN_S, __val)
532
// SOPT7 Bit Fields
533
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0TRGSEL_M      0xF
534
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0TRGSEL_S      0
535
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0TRGSEL(__val) \
536
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0TRGSEL_S, __val)
537
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0PRETRGSEL_M   0x10
538
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0PRETRGSEL_S   4
539
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0ALTTRGEN_M    0x80
540
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC0ALTTRGEN_S    7
541
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1TRGSEL_M      0xF00
542
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1TRGSEL_S      8
543
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1TRGSEL(__val) \
544
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1TRGSEL_S, __val)
545
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1PRETRGSEL_M   0x1000
546
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1PRETRGSEL_S   12
547
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1ALTTRGEN_M    0x8000
548
#define CYGHWR_HAL_KINETIS_SIM_SOPT7_ADC1ALTTRGEN_S    15
549
// SDID Bit Fields
550
#define CYGHWR_HAL_KINETIS_SIM_SDID_PINID_M            0xF
551
#define CYGHWR_HAL_KINETIS_SIM_SDID_PINID_S            0
552
#define CYGHWR_HAL_KINETIS_SIM_SDID_PINID(__val)       \
553
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SDID_PINID_S, __val)
554
#define CYGHWR_HAL_KINETIS_SIM_SDID_FAMID_M            0x70
555
#define CYGHWR_HAL_KINETIS_SIM_SDID_FAMID_S            4
556
#define CYGHWR_HAL_KINETIS_SIM_SDID_FAMID(__val)       \
557
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SDID_FAMID_S, __val)
558
#define CYGHWR_HAL_KINETIS_SIM_SDID_REVID_M            0xF000
559
#define CYGHWR_HAL_KINETIS_SIM_SDID_REVID_S            12
560
#define CYGHWR_HAL_KINETIS_SIM_SDID_REVID(__val)       \
561
        VALUE_(CYGHWR_HAL_KINETIS_SIM_SDID_REVID_S, __val)
562
// SCGC1 Bit Fields
563
#define CYGHWR_HAL_KINETIS_SIM_SCGC1_UART4_M           0x400
564
#define CYGHWR_HAL_KINETIS_SIM_SCGC1_UART4_S           10
565
#define CYGHWR_HAL_KINETIS_SIM_SCGC1_UART5_M           0x800
566
#define CYGHWR_HAL_KINETIS_SIM_SCGC1_UART5_S           11
567
 
568
#define CYGHWR_HAL_KINETIS_SIM_SCGC1_ALL_M \
569
 (CYGHWR_HAL_KINETIS_SIM_SCGC1_UART4_M | CYGHWR_HAL_KINETIS_SIM_SCGC1_UART5_M)
570
 
571
// SCGC2 Bit Fields
572
#define CYGHWR_HAL_KINETIS_SIM_SCGC2_ENET_M            0x1
573
#define CYGHWR_HAL_KINETIS_SIM_SCGC2_ENET_S            0
574
#define CYGHWR_HAL_KINETIS_SIM_SCGC2_DAC0_M            0x1000
575
#define CYGHWR_HAL_KINETIS_SIM_SCGC2_DAC0_S            12
576
#define CYGHWR_HAL_KINETIS_SIM_SCGC2_DAC1_M            0x2000
577
#define CYGHWR_HAL_KINETIS_SIM_SCGC2_DAC1_S            13
578
 
579
#define CYGHWR_HAL_KINETIS_SIM_SCGC2_ALL_M         \
580
            (CYGHWR_HAL_KINETIS_SIM_SCGC2_ENET_M | \
581
             CYGHWR_HAL_KINETIS_SIM_SCGC2_DAC0_M | \
582
             CYGHWR_HAL_KINETIS_SIM_SCGC2_DAC1_M)
583
 
584
// SCGC3 Bit Fields
585
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_RNGB_M            0x1
586
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_RNGB_S            0
587
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_FLEXCAN1_M        0x10
588
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_FLEXCAN1_S        4
589
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_SPI2_M            0x1000
590
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_SPI2_S            12
591
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_SDHC_M            0x20000
592
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_SDHC_S            17
593
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_FTM2_M            0x1000000
594
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_FTM2_S            24
595
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_ADC1_M            0x8000000
596
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_ADC1_S            27
597
 
598
#define CYGHWR_HAL_KINETIS_SIM_SCGC3_ALL_M             \
599
            (CYGHWR_HAL_KINETIS_SIM_SCGC3_RNGB_M |     \
600
             CYGHWR_HAL_KINETIS_SIM_SCGC3_FLEXCAN1_M | \
601
             CYGHWR_HAL_KINETIS_SIM_SCGC3_SPI2_M |     \
602
             CYGHWR_HAL_KINETIS_SIM_SCGC3_SDHC_M |     \
603
             CYGHWR_HAL_KINETIS_SIM_SCGC3_FTM2_M |     \
604
             CYGHWR_HAL_KINETIS_SIM_SCGC3_ADC1_M)
605
 
606
// SCGC4 Bit Fields
607
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_EWM_M             0x2
608
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_EWM_S             1
609
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_CMT_M             0x4
610
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_CMT_S             2
611
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_I2C0_M            0x40
612
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_I2C0_S            6
613
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_I2C1_M            0x80
614
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_I2C1_S            7
615
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART0_M           0x400
616
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART0_S           10
617
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART1_M           0x800
618
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART1_S           11
619
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART2_M           0x1000
620
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART2_S           12
621
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART3_M           0x2000
622
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_UART3_S           13
623
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_USBOTG_M          0x40000
624
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_USBOTG_S          18
625
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_CMP_M             0x80000
626
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_CMP_S             19
627
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_VREF_M            0x100000
628
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_VREF_S            20
629
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_LLWU_M            0x10000000
630
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_LLWU_S            28
631
 
632
#define CYGHWR_HAL_KINETIS_SIM_SCGC4_ALL_M \
633
 (CYGHWR_HAL_KINETIS_SIM_SCGC4_EWM_M |CYGHWR_HAL_KINETIS_SIM_SCGC4_CMT_M |    \
634
 CYGHWR_HAL_KINETIS_SIM_SCGC4_I2C0_M |CYGHWR_HAL_KINETIS_SIM_SCGC4_I2C1_M |   \
635
 CYGHWR_HAL_KINETIS_SIM_SCGC4_UART0_M | CYGHWR_HAL_KINETIS_SIM_SCGC4_UART1_M |\
636
 CYGHWR_HAL_KINETIS_SIM_SCGC4_UART2_M | CYGHWR_HAL_KINETIS_SIM_SCGC4_UART3_M |\
637
 CYGHWR_HAL_KINETIS_SIM_SCGC4_USBOTG_M | CYGHWR_HAL_KINETIS_SIM_SCGC4_CMP_M | \
638
 CYGHWR_HAL_KINETIS_SIM_SCGC4_VREF_M | CYGHWR_HAL_KINETIS_SIM_SCGC4_LLWU_M)
639
 
640
// SCGC5 Bit Fields
641
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_LPTIMER_M         0x1
642
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_LPTIMER_S         0
643
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_REGFILE_M         0x2
644
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_REGFILE_S         1
645
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_TSI_M             0x20
646
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_TSI_S             5
647
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTA_M           0x200
648
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTA_S           9
649
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTB_M           0x400
650
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTB_S           10
651
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTC_M           0x800
652
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTC_S           11
653
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTD_M           0x1000
654
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTD_S           12
655
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTE_M           0x2000
656
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTE_S           13
657
 
658
#define CYGHWR_HAL_KINETIS_SIM_SCGC5_ALL_M            \
659
            (CYGHWR_HAL_KINETIS_SIM_SCGC5_LPTIMER_M | \
660
             CYGHWR_HAL_KINETIS_SIM_SCGC5_REGFILE_M | \
661
             CYGHWR_HAL_KINETIS_SIM_SCGC5_TSI_M |     \
662
             CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTA_M |   \
663
             CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTB_M |   \
664
             CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTC_M |   \
665
             CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTD_M |   \
666
             CYGHWR_HAL_KINETIS_SIM_SCGC5_PORTE_M)
667
 
668
// SCGC6 Bit Fields
669
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FTFL_M            0x1
670
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FTFL_S            0
671
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_DMAMUX_M          0x2
672
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_DMAMUX_S          1
673
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FLEXCAN0_M        0x10
674
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FLEXCAN0_S        4
675
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_DSPI0_M           0x1000
676
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_DSPI0_S           12
677
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_SPI1_M            0x2000
678
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_SPI1_S            13
679
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_I2S_M             0x8000
680
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_I2S_S             15
681
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_CRC_M             0x40000
682
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_CRC_S             18
683
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_USBDCD_M          0x200000
684
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_USBDCD_S          21
685
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_PDB_M             0x400000
686
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_PDB_S             22
687
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_PIT_M             0x800000
688
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_PIT_S             23
689
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FTM0_M            0x1000000
690
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FTM0_S            24
691
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FTM1_M            0x2000000
692
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_FTM1_S            25
693
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_ADC0_M            0x8000000
694
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_ADC0_S            27
695
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_RTC_M             0x20000000
696
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_RTC_S             29
697
 
698
#define CYGHWR_HAL_KINETIS_SIM_SCGC6_ALL_M             \
699
            (CYGHWR_HAL_KINETIS_SIM_SCGC6_FTFL_M |     \
700
             CYGHWR_HAL_KINETIS_SIM_SCGC6_DMAMUX_M |   \
701
             CYGHWR_HAL_KINETIS_SIM_SCGC6_FLEXCAN0_M | \
702
             CYGHWR_HAL_KINETIS_SIM_SCGC6_DSPI0_M |    \
703
             CYGHWR_HAL_KINETIS_SIM_SCGC6_SPI1_M |     \
704
             CYGHWR_HAL_KINETIS_SIM_SCGC6_I2S_M |      \
705
             CYGHWR_HAL_KINETIS_SIM_SCGC6_CRC_M |      \
706
             CYGHWR_HAL_KINETIS_SIM_SCGC6_USBDCD_M |   \
707
             CYGHWR_HAL_KINETIS_SIM_SCGC6_PDB_M |      \
708
             CYGHWR_HAL_KINETIS_SIM_SCGC6_PIT_M |      \
709
             CYGHWR_HAL_KINETIS_SIM_SCGC6_FTM0_M |     \
710
             CYGHWR_HAL_KINETIS_SIM_SCGC6_FTM1_M |     \
711
             CYGHWR_HAL_KINETIS_SIM_SCGC6_ADC0_M |     \
712
             CYGHWR_HAL_KINETIS_SIM_SCGC6_RTC_M)
713
 
714
// SCGC7 Bit Fields
715
#define CYGHWR_HAL_KINETIS_SIM_SCGC7_FLEXBUS_M         0x1
716
#define CYGHWR_HAL_KINETIS_SIM_SCGC7_FLEXBUS_S         0
717
#define CYGHWR_HAL_KINETIS_SIM_SCGC7_DMA_M             0x2
718
#define CYGHWR_HAL_KINETIS_SIM_SCGC7_DMA_S             1
719
#define CYGHWR_HAL_KINETIS_SIM_SCGC7_MPU_M             0x4
720
#define CYGHWR_HAL_KINETIS_SIM_SCGC7_MPU_S             2
721
 
722
#define CYGHWR_HAL_KINETIS_SIM_SCGC7_ALL_M            \
723
            (CYGHWR_HAL_KINETIS_SIM_SCGC7_FLEXBUS_M | \
724
             CYGHWR_HAL_KINETIS_SIM_SCGC7_DMA_M |     \
725
             CYGHWR_HAL_KINETIS_SIM_SCGC7_MPU_M)
726
 
727
// CLKDIV1 Bit Fields
728
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV4_M       0xF0000
729
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV4_S       16
730
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV4(__val)  \
731
        VALUE_(CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV4_S, __val)
732
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV3_M       0xF00000
733
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV3_S       20
734
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV3(__val)  \
735
        VALUE_(CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV3_S, __val)
736
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV2_M       0xF000000
737
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV2_S       24
738
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV2(__val)  \
739
        VALUE_(CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV2_S, __val)
740
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV1_M       0xF0000000
741
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV1_S       28
742
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV1(__val)  \
743
        VALUE_(CYGHWR_HAL_KINETIS_SIM_CLKDIV1_OUTDIV1_S, __val)
744
// CLKDIV2 Bit Fields
745
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_USBFRAC_M       0x1
746
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_USBFRAC_S       0
747
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_USBDIV_M        0xE
748
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_USBDIV_S        1
749
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_USBDIV(__val)   \
750
        VALUE_(CYGHWR_HAL_KINETIS_SIM_CLKDIV2_USBDIV_S, __val)
751
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SFRAC_M       0xFF00
752
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SFRAC_S       8
753
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SFRAC(__val)  \
754
        VALUE_(CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SFRAC_S, __val)
755
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SDIV_M        0xFFF00000
756
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SDIV_S        20
757
#define CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SDIV(__val)   \
758
        VALUE_(CYGHWR_HAL_KINETIS_SIM_CLKDIV2_I2SDIV_S, __val)
759
// FCFG1 Bit Fields
760
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_DEPART_M          0xF00
761
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_DEPART_S          8
762
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_DEPART(__val)     \
763
        VALUE_(CYGHWR_HAL_KINETIS_SIM_FCFG1_DEPART_S, __val)
764
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_EESIZE_M          0xF0000
765
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_EESIZE_S          16
766
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_EESIZE(__val)     \
767
        VALUE_(CYGHWR_HAL_KINETIS_SIM_FCFG1_EESIZE_S, __val)
768
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_FSIZE_M           0xFF000000
769
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_FSIZE_S           24
770
#define CYGHWR_HAL_KINETIS_SIM_FCFG1_FSIZE(__val)      \
771
        VALUE_(CYGHWR_HAL_KINETIS_SIM_FCFG1_FSIZE_S, __val)
772
// FCFG2 Bit Fields
773
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR1_M        0x3F0000
774
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR1_S        16
775
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR1(__val)   \
776
        VALUE_(CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR1_S, __val)
777
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_PFLSH_M           0x800000
778
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_PFLSH_S           23
779
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR0_M        0x3F000000
780
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR0_S        24
781
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR0(__val)   \
782
        VALUE_(CYGHWR_HAL_KINETIS_SIM_FCFG2_MAXADDR0_S, __val)
783
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_SWAPPFLSH_M       0x80000000
784
#define CYGHWR_HAL_KINETIS_SIM_FCFG2_SWAPPFLSH_S       31
785
// UIDH Bit Fields
786
#define CYGHWR_HAL_KINETIS_SIM_UIDH_UID_M              0xFFFFFFFF
787
#define CYGHWR_HAL_KINETIS_SIM_UIDH_UID_S              0
788
#define CYGHWR_HAL_KINETIS_SIM_UIDH_UID(__val)         \
789
        VALUE_(CYGHWR_HAL_KINETIS_SIM_UIDH_UID_S, __val)
790
// UIDMH Bit Fields
791
#define CYGHWR_HAL_KINETIS_SIM_UIDMH_UID_M             0xFFFFFFFF
792
#define CYGHWR_HAL_KINETIS_SIM_UIDMH_UID_S             0
793
#define CYGHWR_HAL_KINETIS_SIM_UIDMH_UID(__val)        \
794
        VALUE_(CYGHWR_HAL_KINETIS_SIM_UIDMH_UID_S, __val)
795
// UIDML Bit Fields
796
#define CYGHWR_HAL_KINETIS_SIM_UIDML_UID_M             0xFFFFFFFF
797
#define CYGHWR_HAL_KINETIS_SIM_UIDML_UID_S             0
798
#define CYGHWR_HAL_KINETIS_SIM_UIDML_UID(__val)        \
799
        VALUE_(CYGHWR_HAL_KINETIS_SIM_UIDML_UID_S, __val)
800
// UIDL Bit Fields
801
#define CYGHWR_HAL_KINETIS_SIM_UIDL_UID_M              0xFFFFFFFF
802
#define CYGHWR_HAL_KINETIS_SIM_UIDL_UID_S              0
803
#define CYGHWR_HAL_KINETIS_SIM_UIDL_UID(__val)         \
804
        VALUE_(CYGHWR_HAL_KINETIS_SIM_UIDL_UID_S, __val)
805
 
806
//---------------------------------------------------------------------------
807
// PORT - Peripheral register structure
808
 
809
typedef volatile struct cyghwr_hal_kinetis_port_s {
810
    cyg_uint32 pcr[32];      // Pin Control Register n, array
811
    cyg_uint32 gpclr;        // Global Pin Control Low Register
812
    cyg_uint32 gpchr;        // Global Pin Control High Register
813
    cyg_uint8 reserved0[24];
814
    cyg_uint32 isfr;         // Interrupt Status Flag Register
815
    cyg_uint8 reserved1[28];
816
    cyg_uint32 dfer;         // Digital Filter Enable Register
817
    cyg_uint32 dfcr;         // Digital Filter Clock Register
818
    cyg_uint32 dfwr;         // Digital Filter Width Register
819
} cyghwr_hal_kinetis_port_t;
820
 
821
// PORT - Peripheral instance base addresses
822
#define CYGHWR_HAL_KINETIS_PORTA_P  (cyghwr_hal_kinetis_port_t *)0x40049000
823
#define CYGHWR_HAL_KINETIS_PORTB_P  (cyghwr_hal_kinetis_port_t *)0x4004A000
824
#define CYGHWR_HAL_KINETIS_PORTC_P  (cyghwr_hal_kinetis_port_t *)0x4004B000
825
#define CYGHWR_HAL_KINETIS_PORTD_P  (cyghwr_hal_kinetis_port_t *)0x4004C000
826
#define CYGHWR_HAL_KINETIS_PORTE_P  (cyghwr_hal_kinetis_port_t *)0x4004D000
827
 
828
enum {
829
    CYGHWR_HAL_KINETIS_PORTA, CYGHWR_HAL_KINETIS_PORTB,
830
    CYGHWR_HAL_KINETIS_PORTC, CYGHWR_HAL_KINETIS_PORTD,
831
    CYGHWR_HAL_KINETIS_PORTE
832
};
833
 
834
// PCR Bit Fields
835
#define CYGHWR_HAL_KINETIS_PORT_PCR_PS_M          0x1
836
#define CYGHWR_HAL_KINETIS_PORT_PCR_PS_S          0
837
#define CYGHWR_HAL_KINETIS_PORT_PCR_PE_M          0x2
838
#define CYGHWR_HAL_KINETIS_PORT_PCR_PE_S          1
839
#define CYGHWR_HAL_KINETIS_PORT_PCR_SRE_M         0x4
840
#define CYGHWR_HAL_KINETIS_PORT_PCR_SRE_S         2
841
#define CYGHWR_HAL_KINETIS_PORT_PCR_PFE_M         0x10
842
#define CYGHWR_HAL_KINETIS_PORT_PCR_PFE_S         4
843
#define CYGHWR_HAL_KINETIS_PORT_PCR_ODE_M         0x20
844
#define CYGHWR_HAL_KINETIS_PORT_PCR_ODE_S         5
845
#define CYGHWR_HAL_KINETIS_PORT_PCR_DSE_M         0x40
846
#define CYGHWR_HAL_KINETIS_PORT_PCR_DSE_S         6
847
#define CYGHWR_HAL_KINETIS_PORT_PCR_MUX_M         0x700
848
#define CYGHWR_HAL_KINETIS_PORT_PCR_MUX_S         8
849
#define CYGHWR_HAL_KINETIS_PORT_PCR_MUX(__val)    \
850
        VALUE_(CYGHWR_HAL_KINETIS_PORT_PCR_MUX_S, __val)
851
#define CYGHWR_HAL_KINETIS_PORT_PCR_LK_M          0x8000
852
#define CYGHWR_HAL_KINETIS_PORT_PCR_LK_S          15
853
#define CYGHWR_HAL_KINETIS_PORT_PCR_IRQC_M        0xF0000
854
#define CYGHWR_HAL_KINETIS_PORT_PCR_IRQC_S        16
855
#define CYGHWR_HAL_KINETIS_PORT_PCR_IRQC(__val)   \
856
        VALUE_(CYGHWR_HAL_KINETIS_PORT_PCR_IRQC_S, __val)
857
#define CYGHWR_HAL_KINETIS_PORT_PCR_ISF_M         0x1000000
858
#define CYGHWR_HAL_KINETIS_PORT_PCR_ISF_S         24
859
 
860
#define CYGHWR_HAL_KINETIS_PORT_PCR_MUX_ANALOG    0
861
#define CYGHWR_HAL_KINETIS_PORT_PCR_MUX_DIS       0
862
#define CYGHWR_HAL_KINETIS_PORT_PCR_MUX_GPIO      1
863
 
864
#define CYGHWR_HAL_KINETIS_PIN(__port, __bit, __mux, __cnf) \
865
    ((CYGHWR_HAL_KINETIS_PORT##__port << 20) | (__bit << 27) \
866
     | CYGHWR_HAL_KINETIS_PORT_PCR_MUX(__mux) | __cnf)
867
 
868
#define CYGHWR_HAL_KINETIS_PIN_PORT(__pin) ((__pin >> 20) & 0x7)
869
#define CYGHWR_HAL_KINETIS_PIN_BIT(__pin)  ((__pin >> 27 ) & 0x1f)
870
#define CYGHWR_HAL_KINETIS_PIN_FUNC(__pin) (__pin & 0x010f8777)
871
#define CYGHWR_HAL_KINETIS_PIN_NONE (0xffffffff)
872
 
873
// GPCLR Bit Fields
874
#define CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWD_M      0xFFFF
875
#define CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWD_S      0
876
#define CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWD(__val) \
877
        VALUE_(CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWD_S, __val)
878
#define CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWE_M      0xFFFF0000
879
#define CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWE_S      16
880
#define CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWE(__val) \
881
        VALUE_(CYGHWR_HAL_KINETIS_PORT_GPCLR_GPWE_S, __val)
882
// GPCHR Bit Fields
883
#define CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWD_M      0xFFFF
884
#define CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWD_S      0
885
#define CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWD(__val) \
886
        VALUE_(CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWD_S, __val)
887
#define CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWE_M      0xFFFF0000
888
#define CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWE_S      16
889
#define CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWE(__val) \
890
        VALUE_(CYGHWR_HAL_KINETIS_PORT_GPCHR_GPWE_S, __val)
891
// ISFR Bit Fields
892
#define CYGHWR_HAL_KINETIS_PORT_ISFR_ISF_M        0xFFFFFFFF
893
#define CYGHWR_HAL_KINETIS_PORT_ISFR_ISF_S        0
894
#define CYGHWR_HAL_KINETIS_PORT_ISFR_ISF(__val)   \
895
        VALUE_(CYGHWR_HAL_KINETIS_PORT_ISFR_ISF_S, __val)
896
// DFER Bit Fields
897
#define CYGHWR_HAL_KINETIS_PORT_DFER_DFE_M        0xFFFFFFFF
898
#define CYGHWR_HAL_KINETIS_PORT_DFER_DFE_S        0
899
#define CYGHWR_HAL_KINETIS_PORT_DFER_DFE(__val)   \
900
        VALUE_(CYGHWR_HAL_KINETIS_PORT_DFER_DFE_S, __val)
901
// DFCR Bit Fields
902
#define CYGHWR_HAL_KINETIS_PORT_DFCR_CS_M         0x1
903
#define CYGHWR_HAL_KINETIS_PORT_DFCR_CS_S         0
904
// DFWR Bit Fields
905
#define CYGHWR_HAL_KINETIS_PORT_DFWR_FILT_M       0x1F
906
#define CYGHWR_HAL_KINETIS_PORT_DFWR_FILT_S       0
907
#define CYGHWR_HAL_KINETIS_PORT_DFWR_FILT(__val)  \
908
        VALUE_(CYGHWR_HAL_KINETIS_PORT_DFWR_FILT_S, __val)
909
 
910
#ifndef __ASSEMBLER__
911
 
912
// Pin configuration related functions
913
__externC void  hal_set_pin_function(cyg_uint32 pin);
914
__externC void  hal_dump_pin_function(cyg_uint32 pin);
915
__externC void  hal_dump_pin_setting(cyg_uint32 pin);
916
 
917
#endif
918
 
919
#define HAL_SET_PINS(_pin_array) \
920
CYG_MACRO_START \
921
    const cyg_uint32 *_pin_p; \
922
    for(_pin_p = &_pin_array[0]; \
923
        _pin_p < &_pin_array[0] + sizeof(_pin_array)/sizeof(_pin_array[0]); \
924
        hal_set_pin_function(*_pin_p++)); \
925
CYG_MACRO_END
926
 
927
//---------------------------------------------------------------------------
928
// FMC Flash Memory Controller
929
 
930
#define CYGHWR_HAL_KINETIS_FMC_BASE     (0x4001F000)
931
#define CYGHWR_HAL_KINETIS_FMC_PFAPR    (CYGHWR_HAL_KINETIS_FMC_BASE)
932
#define CYGHWR_HAL_KINETIS_FMC_PFB0CR   (CYGHWR_HAL_KINETIS_FMC_BASE + 4)
933
#define CYGHWR_HAL_KINETIS_FMC_PFB1CR   (CYGHWR_HAL_KINETIS_FMC_BASE + 8)
934
 
935
enum {
936
    CYGHWR_HAL_KINETIS_FMC_CACHE_W0,
937
    CYGHWR_HAL_KINETIS_FMC_CACHE_W1,
938
    CYGHWR_HAL_KINETIS_FMC_CACHE_W2,
939
    CYGHWR_HAL_KINETIS_FMC_CACHE_W3,
940
    CYGHWR_HAL_KINETIS_FMC_CACHE_WAYS
941
};
942
 
943
enum {
944
    CYGHWR_HAL_KINETIS_FMC_CACHE_S0,
945
    CYGHWR_HAL_KINETIS_FMC_CACHE_S1,
946
    CYGHWR_HAL_KINETIS_FMC_CACHE_S2,
947
    CYGHWR_HAL_KINETIS_FMC_CACHE_S3,
948
    CYGHWR_HAL_KINETIS_FMC_CACHE_S4,
949
    CYGHWR_HAL_KINETIS_FMC_CACHE_S5,
950
    CYGHWR_HAL_KINETIS_FMC_CACHE_S6,
951
    CYGHWR_HAL_KINETIS_FMC_CACHE_S7,
952
    CYGHWR_HAL_KINETIS_FMC_CACHE_SIDES
953
};
954
 
955
#define CYGHWR_HAL_KINETIS_FMC_TAG(__way,__side) \
956
          (CYGHWR_HAL_KINETIS_FMC_BASE + 0x100 + __way*0x20 + __side*4)
957
#define CYGHWR_HAL_KINETIS_FMC_DATA_U(__way,side) \
958
          (CYGHWR_HAL_KINETIS_FMC_BASE + 0x200 + --way*0x20 + __side*8)
959
#define CYGHWR_HAL_KINETIS_FMC_DATA_L(__way,side) \
960
          (CYGHWR_HAL_KINETIS_FMC_BASE + 0x204 + --way*0x40 + __side*8)
961
 
962
#define CYGHWR_HAL_KINETIS_FMC_PFAPR_MPFD_M(__master) (1 << (__master + 16))
963
enum {
964
    CYGHWR_HAL_KINETIS_FMC_PFAPR_MAP_NO_ACCESS,
965
    CYGHWR_HAL_KINETIS_FMC_PFAPR_MAP_RO,
966
    CYGHWR_HAL_KINETIS_FMC_PFAPR_MAP_WO,
967
    CYGHWR_HAL_KINETIS_FMC_PFAPR_MAP_RW
968
};
969
#define CYGHWR_HAL_KINETIS_FMC_PFAPR_MAP(__master, __access) \
970
          (__access <<(2 * __master))
971
 
972
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_RWSC_M (0xf0000000)
973
 
974
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_CLCK_WAY(__way) ((1 << __way) << 24)
975
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_CLCK_ALL \
976
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CLCK_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W0) | \
977
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CLCK_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W1) | \
978
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CLCK_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W2) | \
979
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CLCK_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W3)
980
 
981
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_CINV_WAY(__way) ((1 << __way) << 20)
982
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_CINV_ALL \
983
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CINV_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W0) | \
984
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CINV_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W1) | \
985
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CINV_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W2) | \
986
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CINV_WAY(CYGHWR_HAL_KINETIS_FMC_CACHE_W3)
987
 
988
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_SBINV (1 << 19)
989
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_BMW   (7 << 17)
990
 
991
enum{
992
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CRC_LRU,
993
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CRC_res0,
994
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CRC_IND_LRUW01IF23D,
995
    CYGHWR_HAL_KINETIS_FMC_PFBCR_CRC_IND_LRUW02ID3D
996
};
997
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_CRC   (__cache_repl_con) \
998
                                       (__cache_repl_con << 5)
999
 
1000
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_BDCE  (0x10)
1001
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_BICE  (0x08)
1002
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_BDPE  (0x04)
1003
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_BIPE  (0x02)
1004
#define CYGHWR_HAL_KINETIS_FMC_PFBCR_BSEBE (0x01)
1005
 
1006
//---------------------------------------------------------------------------
1007
// MPU Memory Protection unit
1008
 
1009
typedef volatile struct cyghwr_hal_kinetis_mpu_s {
1010
    cyg_uint32 cesr;          // Control/Error Status Register
1011
    cyg_uint8 reserved0[12];
1012
    struct {
1013
        cyg_uint32 ear;       // Error Address Register, Slave Port n
1014
        cyg_uint32 edr;       // Error Detail Register, Slave Port n
1015
    } slave_port[5];
1016
    cyg_uint8 reserved1[968];
1017
    struct {  // Region Descriptors, Word 0..Region Descriptor n, Word 3
1018
        cyg_uint32 word[4];
1019
    }reg_desc[12];
1020
    cyg_uint8 reserved2[832];
1021
    cyg_uint32 reg_daac[12];  // Region Descriptor Alternate Access Control n
1022
} cyghwr_hal_kinetis_mpu_t;
1023
 
1024
#define CYGHWR_HAL_KINETIS_MPU_P  (cyghwr_hal_kinetis_mpu_t *)0x4000d000
1025
 
1026
//---------------------------------------------------------------------------
1027
// FlexBus
1028
#ifdef CYGPKG_HAL_CORTEXM_KINETIS_FLEXBUS
1029
# include <cyg/hal/var_io_flexbus.h>
1030
#endif
1031
//----------------------------------------------------------------------------
1032
// DMA
1033
//#ifdef CYGPKG_HAL_CORTEXM_KINETIS_DMA
1034
//# include <cyg/hal/var_io_dma.h>
1035
//#endif
1036
 
1037
//---------------------------------------------------------------------------
1038
// GPIO
1039
#include <cyg/hal/var_io_gpio.h>
1040
 
1041
//=============================================================================
1042
// DEVS:
1043
// Following macros may also be, and usually are borrwed by some device drivers.
1044
//-----------------------------------------------------------------------------
1045
#include <cyg/hal/var_io_devs.h>
1046
 
1047
// End Peripherals
1048
 
1049
// Some miscelaneous function prototypes
1050
// Clock related functions are in kinetis_clocking.c
1051
__externC void hal_start_clocks(void);
1052
__externC void hal_update_clock_var(void);
1053
 
1054
//-----------------------------------------------------------------------------
1055
// end of var_io.h
1056
 
1057
#endif // CYGONCE_HAL_VAR_IO_H

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.