1    /*
     2     * Copyright (c) 2013, Texas Instruments Incorporated
     3     * All rights reserved.
     4     *
     5     * Redistribution and use in source and binary forms, with or without
     6     * modification, are permitted provided that the following conditions
     7     * are met:
     8     *
     9     * *  Redistributions of source code must retain the above copyright
    10     *    notice, this list of conditions and the following disclaimer.
    11     *
    12     * *  Redistributions in binary form must reproduce the above copyright
    13     *    notice, this list of conditions and the following disclaimer in the
    14     *    documentation and/or other materials provided with the distribution.
    15     *
    16     * *  Neither the name of Texas Instruments Incorporated nor the names of
    17     *    its contributors may be used to endorse or promote products derived
    18     *    from this software without specific prior written permission.
    19     *
    20     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    21     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    22     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    23     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    24     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    25     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    26     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    27     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    28     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    29     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    30     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    31     */
    32    /*
    33     *  ======== TimerSupport.xdc ========
    34     */
    35    
    36    package ti.sysbios.family.arm.a9.am437x;
    37    
    38    import xdc.rov.ViewInfo;
    39    
    40    /*!
    41     *  ======== TimerSupport ========
    42     *  AM437X Timer Support.
    43     *
    44     *  The AM437X Timer Support module works in conjunction with the DMTimer
    45     *  module to manage the usage of the various DMTimers by the A9 core.
    46     *
    47     *  This module provides a timer available mask for the DMTimers. The
    48     *  application can modify this available mask in the .cfg script
    49     *  to control which timers are available for use by the A9 core.
    50     *  Any timer whose coreesponding mask bit is cleared will be unavailable
    51     *  when creating DMTimer instances.
    52     *
    53     */
    54    
    55    @ModuleStartup
    56    
    57    module TimerSupport inherits ti.sysbios.interfaces.ITimerSupport
    58    {
    59        /*!
    60         *  ======== ModuleView ========
    61         *  @_nodoc
    62         */
    63        metaonly struct ModuleView {
    64            String availMask;
    65        }
    66    
    67        /*!
    68         *  ======== rovViewInfo ========
    69         *  @_nodoc
    70         */
    71        @Facet
    72        metaonly config ViewInfo.Instance rovViewInfo =
    73            ViewInfo.create({
    74                viewMap: [
    75                [
    76                    'Module',
    77                    {
    78                        type: ViewInfo.MODULE,
    79                        viewInitFxn: 'viewInitModule',
    80                        structName: 'ModuleView'
    81                    }
    82                ],
    83                ]
    84            });
    85    
    86        /*!
    87         *  ======== availMask ========
    88         *  Default available mask for dmtimers
    89         *
    90         *  Used to set Timer module's availMask.
    91         */
    92         config Bits32 availMask = 0xFFD;
    93    
    94    internal:
    95    
    96        /*
    97         *  ======== getAnyMask ========
    98         *  Return the anyMask for this device.
    99         */
   100        metaonly Bits32 getAnyMask();
   101    
   102        /*
   103         *  ======== getAvailMask ========
   104         *  Return the availMask for this device.
   105         */
   106        metaonly Bits32 getAvailMask();
   107    }