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

Subversion Repositories openrisc

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
##==========================================================================
2
##
3
##      kinetis_clocking.cdl
4
##
5
##      Cortex-M Freescale Kinetis Clocking
6
##
7
##==========================================================================
8
## ####ECOSGPLCOPYRIGHTBEGIN####
9
## -------------------------------------------
10
## This file is part of eCos, the Embedded Configurable Operating System.
11
## Copyright (C) 2011 Free Software Foundation, Inc.
12
##
13
## eCos is free software; you can redistribute it and/or modify it under
14
## the terms of the GNU General Public License as published by the Free
15
## Software Foundation; either version 2 or (at your option) any later
16
## version.
17
##
18
## eCos is distributed in the hope that it will be useful, but WITHOUT
19
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
21
## for more details.
22
##
23
## You should have received a copy of the GNU General Public License
24
## along with eCos; if not, write to the Free Software Foundation, Inc.,
25
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
26
##
27
## As a special exception, if other files instantiate templates or use
28
## macros or inline functions from this file, or you compile this file
29
## and link it with other works to produce a work based on this file,
30
## this file does not by itself cause the resulting work to be covered by
31
## the GNU General Public License. However the source code for this file
32
## must still be made available in accordance with section (3) of the GNU
33
## General Public License v2.
34
##
35
## This exception does not invalidate any other reasons why a work based
36
## on this file might be covered by the GNU General Public License.
37
## -------------------------------------------
38
## ####ECOSGPLCOPYRIGHTEND####
39
##==========================================================================
40
#######DESCRIPTIONBEGIN####
41
##
42
## Author(s):    Ilija Kocho 
43
## Date:         2011-10-19
44
##
45
######DESCRIPTIONEND####
46
##
47
##==========================================================================
48
 
49
 
50
#    cdl_component CYGHWR_HAL_CORTEXM_KINETIS_CLOCKING
51
#    display       "Clocking"
52
 
53
    cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ {
54
        display "System frequency actual value"
55
        flavor data
56
        calculated {
57
            CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_INT_RC   ?
58
            CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_INT_RC   :
59
            CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_EXT_RC   ?
60
            CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_EXT_RC   :
61
            CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL      ?
62
            CYGNUM_HAL_CORTEXM_KINETIS_MCG_PLL_FREQ_AV :
63
            CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_FLL      ?
64
            CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_FREQ_AV :
65
 
66
        }
67
        description "Operating system clock frequency."
68
    }
69
 
70
    cdl_component CYGHWR_HAL_CORTEXM_KINETIS_MCG {
71
        display "MCG"
72
        flavor data
73
        no_define
74
        calculated { CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK . " " .
75
            ((CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ+500000)/1000000) . "MHz, " . (
76
                  (CYGOPT_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REFSRC == "EXT_REFCLK") ?
77
                  CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS :
78
                  CYGOPT_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REFSRC)
79
 
80
        }
81
        description "Multipurpose Clock Generator"
82
 
83
        cdl_option CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK {
84
            display "System clock source"
85
            flavor data
86
            default_value { "PLL" }
87
            legal_values {
88
                "PLL" "FLL" "EXT_REFCLK"
89
            }
90
            description "
91
                Select one of 3 options for MCG output clock:
92
                PLL or FLL oscillator or External reference clock."
93
        }
94
 
95
        cdl_component CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT {
96
            display "EXT_REFCLK source clock settings"
97
            flavor none
98
            no_define
99
            active_if {
100
                (CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "EXT_REFCLK") ||
101
                (CYGOPT_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REFSRC == "EXT_REFCLK")
102
            }
103
            description "Set External Reference Clock frequency and type."
104
 
105
            cdl_option CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS {
106
                display "Clock type"
107
                flavor data
108
                default_value { "OSC" }
109
                legal_values { "OSC" "XTAL" "RTC"}
110
 
111
                requires {
112
                    (CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS == "OSC") implies
113
                    (CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ <= 50000000)
114
                }
115
 
116
                requires {
117
                    (CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS == "XTAL") implies
118
                    (((CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ >= 3000000) &&
119
                      (CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ <= 32000000)) ||
120
                      ((CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ >= 32000) &&
121
                       (CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ <= 40000)))
122
                }
123
 
124
                requires { (CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS == "RTC")
125
                    implies (CYGHWR_HAL_CORTEXM_KINETIS_RTC == 1)
126
                }
127
                requires { (CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS == "RTC")
128
                    implies (CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "FLL")
129
                }
130
                requires { (CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS == "RTC")
131
                    implies (CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ == 32768)
132
                }
133
 
134
                description "
135
                    Ext reference can be External oscillator or a crystal
136
                    for the on-chip oscillator or Real Time Clock."
137
            }
138
 
139
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ {
140
                display "Clock frequency"
141
                flavor data
142
                legal_values  0 to 50000000
143
                default_value {
144
                    is_active(CYGHWR_HAL_CORTEXM_KINETIS_PLF_XTAL_OR_OSC_FREQ) ?
145
                    CYGHWR_HAL_CORTEXM_KINETIS_PLF_XTAL_OR_OSC_FREQ :
146
                    4000000
147
                }
148
                description "External oscillator or crystal reference in Hz."
149
            }
150
 
151
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_OSC_CAP {
152
                display "XTAL parallel C \[pF\]"
153
                flavor data
154
                active_if { CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT_IS == "XTAL" }
155
                legal_values { 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 }
156
                default_value 0
157
                description "
158
                    The oscillator has 4 on-chip capacitors that combined
159
                    produce capacitance in parallel to the crystal."
160
            }
161
        }
162
 
163
        cdl_component CYGOPT_HAL_CORTEXM_KINETIS_MCG_FLL_PLL {
164
            display "FLL / PLL configuration"
165
            flavor none
166
            no_define
167
            description "
168
                PLL / FLL parameters are being calculated on a
169
                base of required system frequrncy and output as well as
170
                reference oscillator/frequency settings."
171
 
172
            cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP {
173
                display "PLL/FLL output frequency set point"
174
                flavor data
175
                legal_values  32768 to 220000000
176
                calculated CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ_SP
177
                description "Desired PLL output frequency."
178
            }
179
 
180
            cdl_option CYGOPT_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REFSRC {
181
                display "Reference clock source for FLL or PLL"
182
                flavor data
183
                default_value { "EXT_REFCLK" }
184
 
185
                requires { (CYGOPT_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REFSRC == "INT_RC_32KHZ")
186
                    implies (CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "FLL")
187
                }
188
 
189
                legal_values { "INT_RC_32KHZ" "EXT_REFCLK" }
190
                description "
191
                    PLL/FLL oscillators can use one of 3 clock
192
                    references: External Reference Clock or Low (32768 Hz)
193
                    or High (2MHz) Frequency Internal oscillator"
194
            }
195
 
196
            cdl_component CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ {
197
                display "Reference frequency."
198
                flavor data
199
                calculated { is_active (CYGOPT_HAL_CORTEXM_KINETIS_MCG_REF_EXT) ?
200
                    CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ :
201
                    (CYGOPT_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REFSRC
202
                     == "INT_RC_32KHZ" ? 32768 : 2000000 )
203
                }
204
            }
205
 
206
            cdl_component CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_FLL {
207
                display "FLL oscillator"
208
                flavor none
209
                no_define
210
                active_if { CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "FLL" ||
211
                    CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "PLL" ||
212
                    CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "EXT_REFCLK"
213
                }
214
 
215
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FREQ_RANGE {
216
                    display "Reference frequency range"
217
                    flavor data
218
                    legal_values 0 1 2
219
                    calculated {
220
                        CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ > 8000000 ? 2 :
221
                        CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ >= 1000000 ? 1 :
222
                        ((CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ >= 32000) &&
223
                         (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ <= 40000)) ? 0 :
224
                        -1
225
                    }
226
                }
227
 
228
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FRDIV {
229
                    display "Calculated FLL divider"
230
                    flavor data
231
                    calculated {
232
                        CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FREQ_RANGE >= 1 ?
233
                        ((CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ+32768*16) / (32768*32)) :
234
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FREQ_RANGE == 0 ?
235
                         ((CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ+16384) / 32768) : -1)
236
                    }
237
                }
238
 
239
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FRDIV_REG {
240
                    display "FLL divider register value"
241
                    flavor data
242
                    legal_values 0 1 2 3 4 5 6 7
243
                    default_value {
244
                        CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FREQ_RANGE == 0 ?
245
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FRDIV/2) :
246
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FRDIV/2) <= 5 ?
247
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FRDIV/2) : 5
248
                    }
249
                }
250
 
251
                cdl_option CYGNUM_HAL_CORTEXM_MCG_DCO_DRST_DRS {
252
                    display "DCO Range Select"
253
                    flavor data
254
                    legal_values 0 1 2 3
255
                    default_value {
256
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP) >= 80000000 ? 3 :
257
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP) >= 60000000 ? 2 :
258
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP) >= 40000000 ? 1 : 0
259
                    }
260
                }
261
 
262
                cdl_option CYGNUM_HAL_CORTEXM_MCG_DCO_DMX32 {
263
                    display "DCO max. frequency with 32768 reference"
264
                    flavor data
265
                    legal_values 0 0x80
266
                    default_value {
267
                        ((CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP == 96000000) ||
268
                         (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP == 72000000) ||
269
                         (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP == 48000000) ||
270
                         (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP == 24000000)) ?
271
                        0x80 : 0x00
272
                    }
273
                }
274
 
275
                cdl_option CYGNUM_HAL_CORTEXM_MCG_DCO_FLL_FACT {
276
                    display "FLL factor"
277
                    flavor data
278
                    calculated {
279
                        (CYGNUM_HAL_CORTEXM_MCG_DCO_DMX32 == 0x80) ?
280
                        ((CYGNUM_HAL_CORTEXM_MCG_DCO_DRST_DRS == 0 ) ?  732 :
281
                         (CYGNUM_HAL_CORTEXM_MCG_DCO_DRST_DRS == 1 ) ? 1464 :
282
                         (CYGNUM_HAL_CORTEXM_MCG_DCO_DRST_DRS == 2 ) ? 2197 : 2929 ) :
283
                        ((CYGNUM_HAL_CORTEXM_MCG_DCO_DRST_DRS == 0 ) ?  640 :
284
                         (CYGNUM_HAL_CORTEXM_MCG_DCO_DRST_DRS == 1 ) ? 1280 :
285
                         (CYGNUM_HAL_CORTEXM_MCG_DCO_DRST_DRS == 2 ) ? 1920 : 2560 )
286
                    }
287
                }
288
 
289
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_DCO_IN {
290
                    display "DCO input frequency"
291
                    flavor data
292
                    calculated { CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ /
293
                        ( CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FRDIV_REG == 0 ?
294
                         ((CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FREQ_RANGE == 0) ? 1 : 32 ) :
295
                         (CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FRDIV_REG *
296
                          ((CYGNUM_HAL_CORTEXM_KINETIS_MCG_REF_FREQ_RANGE == 0) ? 2 : 64)))
297
                    }
298
                }
299
 
300
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_DCO_IN_CHECK {
301
                    display "DCO input frequency check"
302
                    flavor data
303
                    no_define
304
                    legal_values { "OK" "NOK" "not applicable" }
305
                    calculated {
306
                        CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "FLL" ?
307
                        ((CYGNUM_HAL_CORTEXM_KINETIS_MCG_DCO_IN >= 31250) &&
308
                         (CYGNUM_HAL_CORTEXM_KINETIS_MCG_DCO_IN <= 39063) ?
309
                         "OK" : "NOK" ) :
310
                        "NotApplicable"
311
                    }
312
                    active_if { CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "FLL" }
313
                    requires {
314
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_DCO_IN >= 31250) &&
315
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_DCO_IN <= 39063)
316
                    }
317
                }
318
 
319
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_FREQ_AV {
320
                    display "FLL output frequency actual value"
321
                    flavor data
322
                    calculated {CYGNUM_HAL_CORTEXM_KINETIS_MCG_DCO_IN *
323
                        CYGNUM_HAL_CORTEXM_MCG_DCO_FLL_FACT }
324
                }
325
            }
326
 
327
            cdl_component CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL {
328
                display "PLL oscillator"
329
                flavor none
330
                no_define
331
                active_if { CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "PLL" ||
332
                    CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK == "EXT_REFCLK"
333
                }
334
 
335
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_PLL_INFREQ_X {
336
                    display "Phase detector proposed input frequency"
337
                    no_define
338
                    flavor data
339
                    calculated {
340
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP > 180000000) ?
341
                        3800000 :
342
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP > 110000000) ?
343
                        3000000 :
344
                        !(CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP % 3) ? 2000000 :
345
                        !(CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP % 4) ? 2000000 :
346
                        !(CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP % 5) ? 2500000 :
347
                        300000
348
                    }
349
                }
350
 
351
                cdl_option CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL_PRDIV {
352
                    display "PLL External Reference Divider"
353
                    flavor data
354
                    legal_values 1 to 25
355
                    default_value {
356
                        CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_PLL_INFREQ_X ?
357
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ /
358
                         CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_PLL_INFREQ_X ) : -1
359
                    }
360
                }
361
 
362
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_PLL_INFREQ {
363
                    display "Phase detector input frequency"
364
                    no_define
365
                    flavor data
366
                    legal_values 2000000 to 4000000
367
                    calculated { CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL_PRDIV ?
368
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ /
369
                         CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL_PRDIV) : -1
370
                    }
371
                }
372
 
373
                cdl_option CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL_VDIV {
374
                    display "VCO Divider"
375
                    flavor data
376
                    legal_values 24 to 55
377
                    default_value { CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_PLL_INFREQ ?
378
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_FREQ_SP /
379
                         CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_PLL_INFREQ) : -1
380
                    }
381
                }
382
 
383
                cdl_option CYGNUM_HAL_CORTEXM_KINETIS_MCG_PLL_FREQ_AV {
384
                    display "PLL output frequency actual value"
385
                    flavor data
386
                    calculated { CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL_PRDIV ?
387
                        (CYGNUM_HAL_CORTEXM_KINETIS_MCG_FLL_PLL_REF_FREQ /
388
                         CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL_PRDIV *
389
                         CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_PLL_VDIV) : -1
390
                    }
391
                }
392
            }
393
        }
394
 
395
        cdl_component CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_INT_RC {
396
            display "Internal Reference Clock"
397
            flavor data
398
            calculated { CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_INT_RC_HI ? 2000000 : 32768 }
399
            active_if { CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK ==  "INT_REFCLK" }
400
 
401
            cdl_option CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_INT_RC_HI {
402
                display "Use highh frequency internal osc."
403
                flavor bool
404
                default_value 1
405
            }
406
        }
407
 
408
        cdl_option CYGOPT_HAL_CORTEXM_KINETIS_MCGOUT_EXT_RC {
409
            display "External Reference Clock"
410
            flavor data
411
            calculated CYGHWR_HAL_CORTEXM_KINETIS_MCG_REF_EXT_FREQ
412
            active_if { CYGOPT_HAL_CORTEXM_KINETIS_MCG_MCGOUTCLK ==  "EXT_REFCLK" }
413
        }
414
    }
415
 
416
    cdl_component CYGHWR_HAL_CORTEXM_KINETIS_CLK_DIST {
417
        display "Subsystem clocking"
418
        flavor none
419
        no_define
420
 
421
        cdl_component CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_BUS {
422
            display "Peripheral bus"
423
            flavor data
424
            calculated { CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
425
                CYGHWR_HAL_CORTEXM_KINETIS_CLKDIV_PER_BUS
426
            }
427
 
428
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_MAX {
429
                display "Frequency limit"
430
                flavor data
431
                default_value 50000000
432
            }
433
 
434
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_BUS_SP {
435
                display "Calculated value"
436
                flavor data
437
                default_value {
438
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ <=
439
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_MAX ?
440
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ :
441
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_MAX
442
                }
443
                legal_values  0 to CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_MAX
444
            }
445
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLKDIV_PER_BUS {
446
                display "Divider"
447
                flavor data
448
                legal_values 1 to 16
449
 
450
                default_value { !(CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ %
451
                                  CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_BUS_SP)  ?
452
                    (CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
453
                     CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_BUS_SP)  :
454
                    (CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
455
                     CYGHWR_HAL_CORTEXM_KINETIS_CLK_PER_BUS_SP + 1)
456
                }
457
            }
458
        }
459
 
460
        cdl_component CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH {
461
            display "Flash"
462
            flavor data
463
            calculated { CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
464
                CYGHWR_HAL_CORTEXM_KINETIS_CLKDIV_FLASH
465
            }
466
 
467
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_MAX {
468
                display "Frequency limit"
469
                flavor data
470
                default_value 25000000
471
            }
472
 
473
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_SP {
474
                display "Calculated value"
475
                flavor data
476
                default_value {
477
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ <=
478
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_MAX ?
479
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ :
480
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_MAX
481
                }
482
                legal_values  0 to CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_MAX
483
            }
484
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLKDIV_FLASH {
485
                display "Divider"
486
                flavor data
487
                legal_values 1 to 16
488
 
489
                default_value {
490
                    !(CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ %
491
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_SP)  ?
492
                    (CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
493
                     CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_SP)  :
494
                    (CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
495
                     CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLASH_SP + 1)
496
                }
497
            }
498
        }
499
 
500
        cdl_component CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS {
501
            display "Flex bus"
502
            flavor data
503
            calculated { CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
504
                CYGHWR_HAL_CORTEXM_KINETIS_CLKDIV_FLEX_BUS
505
            }
506
 
507
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_MAX {
508
                display "Frequency limit"
509
                flavor data
510
                default_value 50000000
511
            }
512
 
513
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_SP {
514
                display "Calculated value"
515
                flavor data
516
                default_value {
517
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ <=
518
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_MAX ?
519
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ :
520
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_MAX
521
                }
522
                legal_values  0 to CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_MAX
523
            }
524
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLKDIV_FLEX_BUS {
525
                display "Divider"
526
                flavor data
527
                legal_values 1 to 16
528
 
529
                default_value {
530
                    !(CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ %
531
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_SP)  ?
532
                    (CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
533
                     CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_SP)  :
534
                    (CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ /
535
                     CYGHWR_HAL_CORTEXM_KINETIS_CLK_FLEX_BUS_SP + 1)
536
                }
537
            }
538
        }
539
 
540
 
541
        cdl_component CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB {
542
            display "USB clock"
543
            flavor data
544
            calculated { CYGNUM_HAL_CORTEXM_KINETIS_CLK_USB_IN *
545
                CYGHWR_HAL_CORTEXM_KINETIS_USBCLK_FRAC /
546
                CYGHWR_HAL_CORTEXM_KINETIS_USBCLK_DIV
547
            }
548
 
549
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_MAX {
550
                display "Frequency limit"
551
                flavor data
552
                default_value 48000000
553
            }
554
 
555
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_USBCLK_FRAC {
556
                display "Fractional Divider"
557
                flavor data
558
                legal_values 1 to 2
559
                default_value {
560
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ <
561
                    CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_MAX ? 1 :
562
                    ((CYGNUM_HAL_CORTEXM_KINETIS_CLK_USB_IN) >
563
                     (CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_SP * 4) ? 1 :
564
                     (CYGNUM_HAL_CORTEXM_KINETIS_CLK_USB_IN %
565
                      CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_SP ? 2 : 1))
566
                }
567
            }
568
 
569
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_USBCLK_DIV {
570
                display "Divider"
571
                flavor data
572
                legal_values 1 to 8
573
                default_value { !((CYGNUM_HAL_CORTEXM_KINETIS_CLK_USB_IN *
574
                                   CYGHWR_HAL_CORTEXM_KINETIS_USBCLK_FRAC) %
575
                                   CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_SP)  ?
576
                    (CYGNUM_HAL_CORTEXM_KINETIS_CLK_USB_IN *
577
                     CYGHWR_HAL_CORTEXM_KINETIS_USBCLK_FRAC /
578
                     CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_SP)  :
579
                    ((CYGNUM_HAL_CORTEXM_KINETIS_CLK_USB_IN *
580
                      CYGHWR_HAL_CORTEXM_KINETIS_USBCLK_FRAC /
581
                      CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_SP) +1)
582
                }
583
            }
584
 
585
            cdl_option CYGNUM_HAL_CORTEXM_KINETIS_CLK_USB_IN {
586
                display "USB divider input frequency"
587
                flavor data
588
                calculated {
589
                    CYGNUM_HAL_CORTEXM_KINETIS_MCGOUT_FREQ
590
                }
591
            }
592
 
593
            cdl_option CYGHWR_HAL_CORTEXM_KINETIS_CLK_USB_SP {
594
                display "Desired"
595
                flavor data
596
                calculated 48000000
597
            }
598
        }
599
 
600
        cdl_option CYGHWR_HAL_CORTEXM_KINETIS_TRACECLK {
601
            display "Trace clock source"
602
            flavor data
603
            default_value { "CORE" }
604
            legal_values { "CORE" "MCGOUT" }
605
 
606
        }
607
        cdl_option CYGHWR_HAL_CORTEXM_KINETIS_TRACE_CLKOUT {
608
            display "Enable Trace Clock out"
609
            flavor bool
610
            default_value 0
611
        }
612
    }
613
 
614
    cdl_interface CYGINT_HAL_CORTEXM_KINETIS_RTC {
615
    }
616
 
617
    cdl_component CYGHWR_HAL_CORTEXM_KINETIS_RTC {
618
        display "Real Time Clock"
619
        flavor bool
620
        default_value CYGINT_HAL_CORTEXM_KINETIS_RTC
621
 
622
 
623
        cdl_option CYGHWR_HAL_CORTEXM_KINETIS_RTC_OSC_CAP {
624
            display "RTC XTAL parallel C \[pF\]"
625
            flavor data
626
            legal_values { 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28
627
                30 32 }
628
            default_value 0
629
            description "
630
                The Real Time Clock oscillator has 4 capacitors that
631
                combined produce capacitance in parallel to the crystal."
632
        }
633
    }
634
 
635
# EOF kinetis_clocking.cdl

powered by: WebSVN 2.1.0

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