1 /*
2 * Copyright 2008-2012 Freescale Semiconductor Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution.
11 * * Neither the name of Freescale Semiconductor nor the
12 * names of its contributors may be used to endorse or promote products
13 * derived from this software without specific prior written permission.
14 *
15 *
16 * ALTERNATIVELY, this software may be distributed under the terms of the
17 * GNU General Public License ("GPL") as published by the Free Software
18 * Foundation, either version 2 of that License or (at your option) any
19 * later version.
20 *
21 * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
22 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
25 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33
34 /******************************************************************************
35 @File fm_rtc.h
36
37 @Description Memory map and internal definitions for FM RTC IEEE1588 Timer driver.
38
39 @Cautions None
40 *//***************************************************************************/
41
42 #ifndef __FM_RTC_H__
43 #define __FM_RTC_H__
44
45 #include "std_ext.h"
46 #include "fm_rtc_ext.h"
47
48
49 #define __ERR_MODULE__ MODULE_FM_RTC
50
51 /* General definitions */
52
53 #define ACCUMULATOR_OVERFLOW ((uint64_t)(1LL << 32))
54 #define DEFAULT_OUTPUT_CLOCK_DIVISOR 0x00000002
55 #define DEFAULT_BYPASS FALSE
56 #define DEFAULT_CLOCK_PERIOD 1000
57
58
59
60 typedef struct t_FmRtcAlarm
61 {
62 t_FmRtcExceptionsCallback *f_AlarmCallback;
63 bool clearOnExpiration;
64 } t_FmRtcAlarm;
65
66 typedef struct t_FmRtcPeriodicPulse
67 {
68 t_FmRtcExceptionsCallback *f_PeriodicPulseCallback;
69 } t_FmRtcPeriodicPulse;
70
71 typedef struct t_FmRtcExternalTrigger
72 {
73 t_FmRtcExceptionsCallback *f_ExternalTriggerCallback;
74 } t_FmRtcExternalTrigger;
75
76
77 /**************************************************************************//**
78 @Description RTC FM driver control structure.
79 *//***************************************************************************/
80 typedef struct t_FmRtc
81 {
82 t_Part *p_Part; /**< Pointer to the integration device */
83 t_Handle h_Fm;
84 t_Handle h_App; /**< Application handle */
85 struct rtc_regs *p_MemMap;
86 uint32_t clockPeriodNanoSec; /**< RTC clock period in nano-seconds (for FS mode) */
87 uint32_t srcClkFreqMhz;
88 uint16_t outputClockDivisor; /**< Output clock divisor (for FS mode) */
89 t_FmRtcAlarm alarmParams[FM_RTC_NUM_OF_ALARMS];
90 t_FmRtcPeriodicPulse periodicPulseParams[FM_RTC_NUM_OF_PERIODIC_PULSES];
91 t_FmRtcExternalTrigger externalTriggerParams[FM_RTC_NUM_OF_EXT_TRIGGERS];
92 struct rtc_cfg *p_RtcDriverParam; /**< RTC Driver parameters (for Init phase) */
93 } t_FmRtc;
94
95
96 #endif /* __FM_RTC_H__ */
Cache object: 8844cc3b5a2b0ae4f79f3ed4e5958ee4
|