cpu_conf_kinetis_k.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Eistec AB
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser General
5  * Public License v2.1. See the file LICENSE in the top level directory for more
6  * details.
7  */
8 
9 #pragma once
10 
23 #if (KINETIS_FAMILY == 2)
24 #if (KINETIS_SUBFAMILY == 2)
25 /* Kinetis K22 */
26 #if defined(CPU_MODEL_MK22FX512VLH12) || \
27  defined(CPU_MODEL_MK22FN1M0VLH12) || \
28  defined(CPU_MODEL_MK22FX512VLK12) || \
29  defined(CPU_MODEL_MK22FN1M0VLK12) || \
30  defined(CPU_MODEL_MK22FX512VLL12) || \
31  defined(CPU_MODEL_MK22FN1M0VLL12) || \
32  defined(CPU_MODEL_MK22FX512VLQ12) || \
33  defined(CPU_MODEL_MK22FN1M0VLQ12) || \
34  defined(CPU_MODEL_MK22FX512VMC12) || \
35  defined(CPU_MODEL_MK22FN1M0VMC12) || \
36  defined(CPU_MODEL_MK22FX512VMD12) || \
37  defined(CPU_MODEL_MK22FN1M0VMD12)
38 #include "vendor/MK22F12.h"
39 #elif defined(CPU_MODEL_MK22FN128VDC10) || \
40  defined(CPU_MODEL_MK22FN128VLH10) || \
41  defined(CPU_MODEL_MK22FN128VLL10) || \
42  defined(CPU_MODEL_MK22FN128VMP10)
43 #include "vendor/MK22F12810.h"
44 #elif defined(CPU_MODEL_MK22FN128CAH12) || \
45  defined(CPU_MODEL_MK22FN256CAH12) || \
46  defined(CPU_MODEL_MK22FN256VDC12) || \
47  defined(CPU_MODEL_MK22FN256VLH12) || \
48  defined(CPU_MODEL_MK22FN256VLL12) || \
49  defined(CPU_MODEL_MK22FN256VMP12)
50 #include "vendor/MK22F25612.h"
51 #elif defined(CPU_MODEL_MK22FN512CAP12) || \
52  defined(CPU_MODEL_MK22FN512VDC12) || \
53  defined(CPU_MODEL_MK22FN512VFX12) || \
54  defined(CPU_MODEL_MK22FN512VLH12) || \
55  defined(CPU_MODEL_MK22FN512VLL12) || \
56  defined(CPU_MODEL_MK22FN512VMP12)
57 #include "vendor/MK22F51212.h"
58 #elif defined(CPU_MODEL_MK22FN1M0AVLH12) || \
59  defined(CPU_MODEL_MK22FN1M0AVLK12) || \
60  defined(CPU_MODEL_MK22FN1M0AVLL12) || \
61  defined(CPU_MODEL_MK22FN1M0AVLQ12) || \
62  defined(CPU_MODEL_MK22FN1M0AVMC12) || \
63  defined(CPU_MODEL_MK22FN1M0AVMD12) || \
64  defined(CPU_MODEL_MK22FX512AVLH12) || \
65  defined(CPU_MODEL_MK22FX512AVLK12) || \
66  defined(CPU_MODEL_MK22FX512AVLL12) || \
67  defined(CPU_MODEL_MK22FX512AVLQ12) || \
68  defined(CPU_MODEL_MK22FX512AVMC12) || \
69  defined(CPU_MODEL_MK22FX512AVMD12)
70 #include "vendor/MK22FA12.h"
71 #endif
72 #elif (KINETIS_SUBFAMILY == 0)
73 #if defined(CPU_MODEL_MK20DX64VLH7) || \
74  defined(CPU_MODEL_MK20DX128VLH7) || \
75  defined(CPU_MODEL_MK20DX256VLH7) || \
76  defined(CPU_MODEL_MK20DX64VLK7) || \
77  defined(CPU_MODEL_MK20DX128VLK7) || \
78  defined(CPU_MODEL_MK20DX256VLK7) || \
79  defined(CPU_MODEL_MK20DX128VLL7) || \
80  defined(CPU_MODEL_MK20DX256VLL7) || \
81  defined(CPU_MODEL_MK20DX64VMB7) || \
82  defined(CPU_MODEL_MK20DX128VMB7) || \
83  defined(CPU_MODEL_MK20DX256VMB7) || \
84  defined(CPU_MODEL_MK20DX128VML7) || \
85  defined(CPU_MODEL_MK20DX256VML7)
86 #include "vendor/MK20D7.h"
87 #endif
88 #endif /* (KINETIS_SUBFAMILY == y) */
89 #elif (KINETIS_FAMILY == 6)
90 #if (KINETIS_SUBFAMILY == 0)
91 #if defined(CPU_MODEL_MK60DN256VLL10) || \
92  defined(CPU_MODEL_MK60DN256VLQ10) || \
93  defined(CPU_MODEL_MK60DN256VMC10) || \
94  defined(CPU_MODEL_MK60DN256VMD10) || \
95  defined(CPU_MODEL_MK60DN512VLL10) || \
96  defined(CPU_MODEL_MK60DN512VLQ10) || \
97  defined(CPU_MODEL_MK60DN512VMC10) || \
98  defined(CPU_MODEL_MK60DN512VMD10) || \
99  defined(CPU_MODEL_MK60DX256VLL10) || \
100  defined(CPU_MODEL_MK60DX256VLQ10) || \
101  defined(CPU_MODEL_MK60DX256VMC10) || \
102  defined(CPU_MODEL_MK60DX256VMD10)
103 #include "vendor/MK60D10.h"
104 #endif
108 #define KINETIS_HAVE_ADICLK_BUS_DIV_2 1
109 
110 #elif (KINETIS_SUBFAMILY == 4)
111 #if defined(CPU_MODEL_MK64FN1M0CAJ12) || \
112  defined(CPU_MODEL_MK64FN1M0VDC12) || \
113  defined(CPU_MODEL_MK64FN1M0VLL12) || \
114  defined(CPU_MODEL_MK64FN1M0VLQ12) || \
115  defined(CPU_MODEL_MK64FN1M0VMD12) || \
116  defined(CPU_MODEL_MK64FX512VDC12) || \
117  defined(CPU_MODEL_MK64FX512VLL12) || \
118  defined(CPU_MODEL_MK64FX512VLQ12) || \
119  defined(CPU_MODEL_MK64FX512VMD12)
120 #include "vendor/MK64F12.h"
121 
130 #define HWRNG_CLK_REG (SIM->SCGC6)
131 #define HWRNG_CLK_REG_SHIFT (SIM_SCGC6_RNGA_SHIFT)
134 #endif
135 #endif /* (KINETIS_SUBFAMILY == y) */
136 #endif /* (KINETIS_FAMILY == x) */
137 
142 #define FLASHPAGE_SIZE (4096U)
143 #define FLASHPAGE_NUMOF ((KINETIS_ROMSIZE * 1024) / FLASHPAGE_SIZE)
144 
145 /* The minimum block size which can be written is 8B (Phrase). However, the
146  * erase block is always FLASHPAGE_SIZE.
147  */
148 #define FLASHPAGE_BLOCK_PHRASE (8U)
149 #define FLASHPAGE_WRITE_BLOCK_SIZE FLASHPAGE_BLOCK_PHRASE
150 /* Writing should be always 8 bytes aligned */
151 #define FLASHPAGE_WRITE_BLOCK_ALIGNMENT FLASHPAGE_BLOCK_PHRASE
152 /* Section erase and programming must be 16 bytes aligned */
153 #define FLASHPAGE_BLOCK_SECTION_ALIGNMENT (16U)
156 #ifdef __cplusplus
157 extern "C"
158 {
159 #endif
160 
161 #ifdef __cplusplus
162 }
163 #endif
164