The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/ncsw/inc/Peripherals/fm_rtc_ext.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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_ext.h
   36 
   37  @Description   External definitions and API for FM RTC IEEE1588 Timer Module.
   38 
   39  @Cautions      None.
   40 *//***************************************************************************/
   41 
   42 #ifndef __FM_RTC_EXT_H__
   43 #define __FM_RTC_EXT_H__
   44 
   45 
   46 #include "error_ext.h"
   47 #include "std_ext.h"
   48 #include "fsl_fman_rtc.h"
   49 
   50 /**************************************************************************//**
   51 
   52  @Group         FM_grp Frame Manager API
   53 
   54  @Description   FM API functions, definitions and enums
   55 
   56  @{
   57 *//***************************************************************************/
   58 
   59 /**************************************************************************//**
   60  @Group         fm_rtc_grp FM RTC
   61 
   62  @Description   FM RTC functions, definitions and enums.
   63 
   64  @{
   65 *//***************************************************************************/
   66 
   67 /**************************************************************************//**
   68  @Group         fm_rtc_init_grp FM RTC Initialization Unit
   69 
   70  @Description   FM RTC initialization API.
   71 
   72  @{
   73 *//***************************************************************************/
   74 
   75 /**************************************************************************//**
   76  @Description   FM RTC Alarm Polarity Options.
   77 *//***************************************************************************/
   78 typedef enum e_FmRtcAlarmPolarity
   79 {
   80     e_FM_RTC_ALARM_POLARITY_ACTIVE_HIGH = E_FMAN_RTC_ALARM_POLARITY_ACTIVE_HIGH,    /**< Active-high output polarity */
   81     e_FM_RTC_ALARM_POLARITY_ACTIVE_LOW = E_FMAN_RTC_ALARM_POLARITY_ACTIVE_LOW     /**< Active-low output polarity */
   82 } e_FmRtcAlarmPolarity;
   83 
   84 /**************************************************************************//**
   85  @Description   FM RTC Trigger Polarity Options.
   86 *//***************************************************************************/
   87 typedef enum e_FmRtcTriggerPolarity
   88 {
   89     e_FM_RTC_TRIGGER_ON_RISING_EDGE = E_FMAN_RTC_TRIGGER_ON_RISING_EDGE,    /**< Trigger on rising edge */
   90     e_FM_RTC_TRIGGER_ON_FALLING_EDGE = E_FMAN_RTC_TRIGGER_ON_FALLING_EDGE   /**< Trigger on falling edge */
   91 } e_FmRtcTriggerPolarity;
   92 
   93 /**************************************************************************//**
   94  @Description   IEEE1588 Timer Module FM RTC Optional Clock Sources.
   95 *//***************************************************************************/
   96 typedef enum e_FmSrcClock
   97 {
   98     e_FM_RTC_SOURCE_CLOCK_EXTERNAL = E_FMAN_RTC_SOURCE_CLOCK_EXTERNAL,  /**< external high precision timer reference clock */
   99     e_FM_RTC_SOURCE_CLOCK_SYSTEM = E_FMAN_RTC_SOURCE_CLOCK_SYSTEM,    /**< MAC system clock */
  100     e_FM_RTC_SOURCE_CLOCK_OSCILATOR = E_FMAN_RTC_SOURCE_CLOCK_OSCILATOR  /**< RTC clock oscilator */
  101 }e_FmSrcClk;
  102 
  103 /**************************************************************************//**
  104  @Description   FM RTC configuration parameters structure.
  105 
  106                 This structure should be passed to FM_RTC_Config().
  107 *//***************************************************************************/
  108 typedef struct t_FmRtcParams
  109 {
  110     t_Handle                 h_Fm;               /**< FM Handle*/
  111     uintptr_t                baseAddress;        /**< Base address of FM RTC registers */
  112     t_Handle                 h_App;              /**< A handle to an application layer object; This handle will
  113                                                       be passed by the driver upon calling the above callbacks */
  114 } t_FmRtcParams;
  115 
  116 
  117 /**************************************************************************//**
  118  @Function      FM_RTC_Config
  119 
  120  @Description   Configures the FM RTC module according to user's parameters.
  121 
  122                 The driver assigns default values to some FM RTC parameters.
  123                 These parameters can be overwritten using the advanced
  124                 configuration routines.
  125 
  126  @Param[in]     p_FmRtcParam    - FM RTC configuration parameters.
  127 
  128  @Return        Handle to the new FM RTC object; NULL pointer on failure.
  129 
  130  @Cautions      None
  131 *//***************************************************************************/
  132 t_Handle FM_RTC_Config(t_FmRtcParams *p_FmRtcParam);
  133 
  134 /**************************************************************************//**
  135  @Function      FM_RTC_Init
  136 
  137  @Description   Initializes the FM RTC driver and hardware.
  138 
  139  @Param[in]     h_FmRtc - Handle to FM RTC object.
  140 
  141  @Return        E_OK on success; Error code otherwise.
  142 
  143  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  144 *//***************************************************************************/
  145 t_Error FM_RTC_Init(t_Handle h_FmRtc);
  146 
  147 /**************************************************************************//**
  148  @Function      FM_RTC_Free
  149 
  150  @Description   Frees the FM RTC object and all allocated resources.
  151 
  152  @Param[in]     h_FmRtc - Handle to FM RTC object.
  153 
  154  @Return        E_OK on success; Error code otherwise.
  155 
  156  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  157 *//***************************************************************************/
  158 t_Error FM_RTC_Free(t_Handle h_FmRtc);
  159 
  160 
  161 /**************************************************************************//**
  162  @Group         fm_rtc_adv_config_grp  FM RTC Advanced Configuration Unit
  163 
  164  @Description   FM RTC advanced configuration functions.
  165 
  166  @{
  167 *//***************************************************************************/
  168 
  169 /**************************************************************************//**
  170  @Function      FM_RTC_ConfigPeriod
  171 
  172  @Description   Configures the period of the timestamp if different than
  173                 default [DEFAULT_clockPeriod].
  174 
  175  @Param[in]     h_FmRtc         - Handle to FM RTC object.
  176  @Param[in]     period          - Period in nano-seconds.
  177 
  178  @Return        E_OK on success; Error code otherwise.
  179 
  180  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  181 *//***************************************************************************/
  182 t_Error FM_RTC_ConfigPeriod(t_Handle h_FmRtc, uint32_t period);
  183 
  184 /**************************************************************************//**
  185  @Function      FM_RTC_ConfigSourceClock
  186 
  187  @Description   Configures the source clock of the RTC.
  188 
  189  @Param[in]     h_FmRtc         - Handle to FM RTC object.
  190  @Param[in]     srcClk          - Source clock selection.
  191  @Param[in]     freqInMhz       - the source-clock frequency (in MHz).
  192 
  193  @Return        E_OK on success; Error code otherwise.
  194 
  195  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  196 *//***************************************************************************/
  197 t_Error FM_RTC_ConfigSourceClock(t_Handle      h_FmRtc,
  198                                  e_FmSrcClk    srcClk,
  199                                  uint32_t      freqInMhz);
  200 
  201 /**************************************************************************//**
  202  @Function      FM_RTC_ConfigPulseRealignment
  203 
  204  @Description   Configures the RTC to automatic FIPER pulse realignment in
  205                 response to timer adjustments [DEFAULT_pulseRealign]
  206 
  207                 In this mode, the RTC clock is identical to the source clock.
  208                 This feature can be useful when the system contains an external
  209                 RTC with inherent frequency compensation.
  210 
  211  @Param[in]     h_FmRtc     - Handle to FM RTC object.
  212  @Param[in]     enable      - TRUE to enable automatic realignment.
  213 
  214  @Return        E_OK on success; Error code otherwise.
  215 
  216  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  217 *//***************************************************************************/
  218 t_Error FM_RTC_ConfigPulseRealignment(t_Handle h_FmRtc, bool enable);
  219 
  220 /**************************************************************************//**
  221  @Function      FM_RTC_ConfigFrequencyBypass
  222 
  223  @Description   Configures the RTC to bypass the frequency compensation
  224                 mechanism. [DEFAULT_bypass]
  225 
  226                 In this mode, the RTC clock is identical to the source clock.
  227                 This feature can be useful when the system contains an external
  228                 RTC with inherent frequency compensation.
  229 
  230  @Param[in]     h_FmRtc     - Handle to FM RTC object.
  231  @Param[in]     enabled     - TRUE to bypass frequency compensation;
  232                               FALSE otherwise.
  233 
  234  @Return        E_OK on success; Error code otherwise.
  235 
  236  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  237 *//***************************************************************************/
  238 t_Error FM_RTC_ConfigFrequencyBypass(t_Handle h_FmRtc, bool enabled);
  239 
  240 /**************************************************************************//**
  241  @Function      FM_RTC_ConfigInvertedInputClockPhase
  242 
  243  @Description   Configures the RTC to invert the source clock phase on input.
  244                 [DEFAULT_invertInputClkPhase]
  245 
  246  @Param[in]     h_FmRtc  - Handle to FM RTC object.
  247  @Param[in]     inverted    - TRUE to invert the source clock phase on input.
  248                               FALSE otherwise.
  249 
  250  @Return        E_OK on success; Error code otherwise.
  251 
  252  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  253 *//***************************************************************************/
  254 t_Error FM_RTC_ConfigInvertedInputClockPhase(t_Handle h_FmRtc, bool inverted);
  255 
  256 /**************************************************************************//**
  257  @Function      FM_RTC_ConfigInvertedOutputClockPhase
  258 
  259  @Description   Configures the RTC to invert the output clock phase.
  260                 [DEFAULT_invertOutputClkPhase]
  261 
  262  @Param[in]     h_FmRtc  - Handle to FM RTC object.
  263  @Param[in]     inverted    - TRUE to invert the output clock phase.
  264                               FALSE otherwise.
  265 
  266  @Return        E_OK on success; Error code otherwise.
  267 
  268  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  269 *//***************************************************************************/
  270 t_Error FM_RTC_ConfigInvertedOutputClockPhase(t_Handle h_FmRtc, bool inverted);
  271 
  272 /**************************************************************************//**
  273  @Function      FM_RTC_ConfigOutputClockDivisor
  274 
  275  @Description   Configures the divisor for generating the output clock from
  276                 the RTC clock. [DEFAULT_outputClockDivisor]
  277 
  278  @Param[in]     h_FmRtc  - Handle to FM RTC object.
  279  @Param[in]     divisor     - Divisor for generation of the output clock.
  280 
  281  @Return        E_OK on success; Error code otherwise.
  282 
  283  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  284 *//***************************************************************************/
  285 t_Error FM_RTC_ConfigOutputClockDivisor(t_Handle h_FmRtc, uint16_t divisor);
  286 
  287 /**************************************************************************//**
  288  @Function      FM_RTC_ConfigAlarmPolarity
  289 
  290  @Description   Configures the polarity (active-high/active-low) of a specific
  291                 alarm signal. [DEFAULT_alarmPolarity]
  292 
  293  @Param[in]     h_FmRtc      - Handle to FM RTC object.
  294  @Param[in]     alarmId         - Alarm ID.
  295  @Param[in]     alarmPolarity   - Alarm polarity.
  296 
  297  @Return        E_OK on success; Error code otherwise.
  298 
  299  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  300 *//***************************************************************************/
  301 t_Error FM_RTC_ConfigAlarmPolarity(t_Handle             h_FmRtc,
  302                                    uint8_t              alarmId,
  303                                    e_FmRtcAlarmPolarity alarmPolarity);
  304 
  305 /**************************************************************************//**
  306  @Function      FM_RTC_ConfigExternalTriggerPolarity
  307 
  308  @Description   Configures the polarity (rising/falling edge) of a specific
  309                 external trigger signal. [DEFAULT_triggerPolarity]
  310 
  311  @Param[in]     h_FmRtc      - Handle to FM RTC object.
  312  @Param[in]     triggerId       - Trigger ID.
  313  @Param[in]     triggerPolarity - Trigger polarity.
  314 
  315  @Return        E_OK on success; Error code otherwise.
  316 
  317  @Cautions      h_FmRtc must have been previously created using FM_RTC_Config().
  318 *//***************************************************************************/
  319 t_Error FM_RTC_ConfigExternalTriggerPolarity(t_Handle               h_FmRtc,
  320                                              uint8_t                triggerId,
  321                                              e_FmRtcTriggerPolarity triggerPolarity);
  322 
  323 /** @} */ /* end of fm_rtc_adv_config_grp */
  324 /** @} */ /* end of fm_rtc_init_grp */
  325 
  326 
  327 /**************************************************************************//**
  328  @Group         fm_rtc_control_grp FM RTC Control Unit
  329 
  330  @Description   FM RTC runtime control API.
  331 
  332  @{
  333 *//***************************************************************************/
  334 
  335 /**************************************************************************//**
  336  @Function      t_FmRtcExceptionsCallback
  337 
  338  @Description   Exceptions user callback routine, used for RTC different mechanisms.
  339 
  340  @Param[in]     h_App       - User's application descriptor.
  341  @Param[in]     id          - source id.
  342 *//***************************************************************************/
  343 typedef void (t_FmRtcExceptionsCallback) ( t_Handle  h_App, uint8_t id);
  344 
  345 /**************************************************************************//**
  346  @Description   FM RTC alarm parameters.
  347 *//***************************************************************************/
  348 typedef struct t_FmRtcAlarmParams {
  349     uint8_t                     alarmId;            /**< 0 or 1 */
  350     uint64_t                    alarmTime;          /**< In nanoseconds, the time when the alarm
  351                                                          should go off - must be a multiple of
  352                                                          the RTC period */
  353     t_FmRtcExceptionsCallback   *f_AlarmCallback;   /**< This routine will be called when RTC
  354                                                          reaches alarmTime */
  355     bool                        clearOnExpiration;  /**< TRUE to turn off the alarm once expired. */
  356 } t_FmRtcAlarmParams;
  357 
  358 /**************************************************************************//**
  359  @Description   FM RTC Periodic Pulse parameters.
  360 *//***************************************************************************/
  361 typedef struct t_FmRtcPeriodicPulseParams {
  362     uint8_t                     periodicPulseId;            /**< 0 or 1 */
  363     uint64_t                    periodicPulsePeriod;        /**< In Nanoseconds. Must be
  364                                                                  a multiple of the RTC period */
  365     t_FmRtcExceptionsCallback   *f_PeriodicPulseCallback;   /**< This routine will be called every
  366                                                                  periodicPulsePeriod. */
  367 } t_FmRtcPeriodicPulseParams;
  368 
  369 /**************************************************************************//**
  370  @Description   FM RTC Periodic Pulse parameters.
  371 *//***************************************************************************/
  372 typedef struct t_FmRtcExternalTriggerParams {
  373     uint8_t                     externalTriggerId;              /**< 0 or 1 */
  374     bool                        usePulseAsInput;                /**< Use the pulse interrupt instead of
  375                                                                      an external signal */
  376     t_FmRtcExceptionsCallback   *f_ExternalTriggerCallback;     /**< This routine will be called every
  377                                                                      periodicPulsePeriod. */
  378 } t_FmRtcExternalTriggerParams;
  379 
  380 
  381 /**************************************************************************//**
  382  @Function      FM_RTC_Enable
  383 
  384  @Description   Enable the RTC (time count is started).
  385 
  386                 The user can select to resume the time count from previous
  387                 point, or to restart the time count.
  388 
  389  @Param[in]     h_FmRtc     - Handle to FM RTC object.
  390  @Param[in]     resetClock  - Restart the time count from zero.
  391 
  392  @Return        E_OK on success; Error code otherwise.
  393 
  394  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  395 *//***************************************************************************/
  396 t_Error FM_RTC_Enable(t_Handle h_FmRtc, bool resetClock);
  397 
  398 /**************************************************************************//**
  399  @Function      FM_RTC_Disable
  400 
  401  @Description   Disables the RTC (time count is stopped).
  402 
  403  @Param[in]     h_FmRtc - Handle to FM RTC object.
  404 
  405  @Return        E_OK on success; Error code otherwise.
  406 
  407  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  408 *//***************************************************************************/
  409 t_Error FM_RTC_Disable(t_Handle h_FmRtc);
  410 
  411 /**************************************************************************//**
  412  @Function      FM_RTC_SetClockOffset
  413 
  414  @Description   Sets the clock offset (usually relative to another clock).
  415 
  416                 The user can pass a negative offset value.
  417 
  418  @Param[in]     h_FmRtc  - Handle to FM RTC object.
  419  @Param[in]     offset   - New clock offset (in nanoseconds).
  420 
  421  @Return        E_OK on success; Error code otherwise.
  422 
  423  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  424 *//***************************************************************************/
  425 t_Error FM_RTC_SetClockOffset(t_Handle h_FmRtc, int64_t offset);
  426 
  427 /**************************************************************************//**
  428  @Function      FM_RTC_SetAlarm
  429 
  430  @Description   Schedules an alarm event to a given RTC time.
  431 
  432  @Param[in]     h_FmRtc             - Handle to FM RTC object.
  433  @Param[in]     p_FmRtcAlarmParams  - Alarm parameters.
  434 
  435  @Return        E_OK on success; Error code otherwise.
  436 
  437  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  438                 Must be called only prior to FM_RTC_Enable().
  439 *//***************************************************************************/
  440 t_Error FM_RTC_SetAlarm(t_Handle h_FmRtc, t_FmRtcAlarmParams *p_FmRtcAlarmParams);
  441 
  442 /**************************************************************************//**
  443  @Function      FM_RTC_SetPeriodicPulse
  444 
  445  @Description   Sets a periodic pulse.
  446 
  447  @Param[in]     h_FmRtc                         - Handle to FM RTC object.
  448  @Param[in]     p_FmRtcPeriodicPulseParams      - Periodic pulse parameters.
  449 
  450  @Return        E_OK on success; Error code otherwise.
  451 
  452  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  453                 Must be called only prior to FM_RTC_Enable().
  454 *//***************************************************************************/
  455 t_Error FM_RTC_SetPeriodicPulse(t_Handle h_FmRtc, t_FmRtcPeriodicPulseParams *p_FmRtcPeriodicPulseParams);
  456 
  457 /**************************************************************************//**
  458  @Function      FM_RTC_ClearPeriodicPulse
  459 
  460  @Description   Clears a periodic pulse.
  461 
  462  @Param[in]     h_FmRtc                         - Handle to FM RTC object.
  463  @Param[in]     periodicPulseId                 - Periodic pulse id.
  464 
  465  @Return        E_OK on success; Error code otherwise.
  466 
  467  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  468 *//***************************************************************************/
  469 t_Error FM_RTC_ClearPeriodicPulse(t_Handle h_FmRtc, uint8_t periodicPulseId);
  470 
  471 /**************************************************************************//**
  472  @Function      FM_RTC_SetExternalTrigger
  473 
  474  @Description   Sets an external trigger indication and define a callback
  475                 routine to be called on such event.
  476 
  477  @Param[in]     h_FmRtc                         - Handle to FM RTC object.
  478  @Param[in]     p_FmRtcExternalTriggerParams    - External Trigger parameters.
  479 
  480  @Return        E_OK on success; Error code otherwise.
  481 
  482  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  483 *//***************************************************************************/
  484 t_Error FM_RTC_SetExternalTrigger(t_Handle h_FmRtc, t_FmRtcExternalTriggerParams *p_FmRtcExternalTriggerParams);
  485 
  486 /**************************************************************************//**
  487  @Function      FM_RTC_ClearExternalTrigger
  488 
  489  @Description   Clears external trigger indication.
  490 
  491  @Param[in]     h_FmRtc                         - Handle to FM RTC object.
  492  @Param[in]     id                              - External Trigger id.
  493 
  494  @Return        E_OK on success; Error code otherwise.
  495 
  496  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  497 *//***************************************************************************/
  498 t_Error FM_RTC_ClearExternalTrigger(t_Handle h_FmRtc, uint8_t id);
  499 
  500 /**************************************************************************//**
  501  @Function      FM_RTC_GetExternalTriggerTimeStamp
  502 
  503  @Description   Reads the External Trigger TimeStamp.
  504 
  505  @Param[in]     h_FmRtc                 - Handle to FM RTC object.
  506  @Param[in]     triggerId               - External Trigger id.
  507  @Param[out]    p_TimeStamp             - External Trigger timestamp (in nanoseconds).
  508 
  509  @Return        E_OK on success; Error code otherwise.
  510 
  511  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  512 *//***************************************************************************/
  513 t_Error FM_RTC_GetExternalTriggerTimeStamp(t_Handle             h_FmRtc,
  514                                            uint8_t              triggerId,
  515                                            uint64_t             *p_TimeStamp);
  516 
  517 /**************************************************************************//**
  518  @Function      FM_RTC_GetCurrentTime
  519 
  520  @Description   Returns the current RTC time.
  521 
  522  @Param[in]     h_FmRtc - Handle to FM RTC object.
  523  @Param[out]    p_Ts - returned time stamp (in nanoseconds).
  524 
  525  @Return        E_OK on success; Error code otherwise.
  526 
  527  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  528 *//***************************************************************************/
  529 t_Error FM_RTC_GetCurrentTime(t_Handle h_FmRtc, uint64_t *p_Ts);
  530 
  531 /**************************************************************************//**
  532  @Function      FM_RTC_SetCurrentTime
  533 
  534  @Description   Sets the current RTC time.
  535 
  536  @Param[in]     h_FmRtc - Handle to FM RTC object.
  537  @Param[in]     ts - The new time stamp (in nanoseconds).
  538 
  539  @Return        E_OK on success; Error code otherwise.
  540 
  541  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  542 *//***************************************************************************/
  543 t_Error FM_RTC_SetCurrentTime(t_Handle h_FmRtc, uint64_t ts);
  544 
  545 /**************************************************************************//**
  546  @Function      FM_RTC_GetFreqCompensation
  547 
  548  @Description   Retrieves the frequency compensation value
  549 
  550  @Param[in]     h_FmRtc         - Handle to FM RTC object.
  551  @Param[out]    p_Compensation  - A pointer to the returned value of compensation.
  552 
  553  @Return        E_OK on success; Error code otherwise.
  554 
  555  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  556 *//***************************************************************************/
  557 t_Error FM_RTC_GetFreqCompensation(t_Handle h_FmRtc, uint32_t *p_Compensation);
  558 
  559 /**************************************************************************//**
  560  @Function      FM_RTC_SetFreqCompensation
  561 
  562  @Description   Sets a new frequency compensation value.
  563 
  564  @Param[in]     h_FmRtc             - Handle to FM RTC object.
  565  @Param[in]     freqCompensation    - The new frequency compensation value to set.
  566 
  567  @Return        E_OK on success; Error code otherwise.
  568 
  569  @Cautions      h_FmRtc must have been previously initialized using FM_RTC_Init().
  570 *//***************************************************************************/
  571 t_Error FM_RTC_SetFreqCompensation(t_Handle h_FmRtc, uint32_t freqCompensation);
  572 
  573 #ifdef CONFIG_PTP_1588_CLOCK_DPAA
  574 /**************************************************************************//**
  575 *@Function      FM_RTC_EnableInterrupt
  576 *
  577 *@Description   Enable interrupt of FM RTC.
  578 *
  579 *@Param[in]     h_FmRtc             - Handle to FM RTC object.
  580 *@Param[in]     events              - Interrupt events.
  581 *
  582 *@Return        E_OK on success; Error code otherwise.
  583 *//***************************************************************************/
  584 t_Error FM_RTC_EnableInterrupt(t_Handle h_FmRtc, uint32_t events);
  585 
  586 /**************************************************************************//**
  587 *@Function      FM_RTC_DisableInterrupt
  588 *
  589 *@Description   Disable interrupt of FM RTC.
  590 *
  591 *@Param[in]     h_FmRtc             - Handle to FM RTC object.
  592 *@Param[in]     events              - Interrupt events.
  593 *
  594 *@Return        E_OK on success; Error code otherwise.
  595 *//***************************************************************************/
  596 t_Error FM_RTC_DisableInterrupt(t_Handle h_FmRtc, uint32_t events);
  597 #endif
  598 
  599 #if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
  600 /**************************************************************************//**
  601  @Function      FM_RTC_DumpRegs
  602 
  603  @Description   Dumps all FM registers
  604 
  605  @Param[in]     h_FmRtc      A handle to an FM RTC Module.
  606 
  607  @Return        E_OK on success;
  608 
  609  @Cautions      Allowed only FM_Init().
  610 *//***************************************************************************/
  611 t_Error FM_RTC_DumpRegs(t_Handle h_FmRtc);
  612 #endif /* (defined(DEBUG_ERRORS) && ... */
  613 
  614 /** @} */ /* end of fm_rtc_control_grp */
  615 /** @} */ /* end of fm_rtc_grp */
  616 /** @} */ /* end of FM_grp group */
  617 
  618 
  619 #endif /* __FM_RTC_EXT_H__ */

Cache object: 9880ff467e4388b12620f890887a941b


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.