1    /*
     2     * Copyright (c) 2016, 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    /*!
    34     *  ======== OA_2 ========
    35     *  MSP430 General Purpose Operational Amplifier
    36     *
    37     *  The module is named OA_2 because it only supports two OAs. A device
    38     *  containing three op-amps would require a separate module.
    39     */
    40    metaonly module OA_2 inherits IOA {
    41        /*!
    42         *  ======== create ========
    43         *  Create an instance of this peripheral
    44         */
    45        create();
    46    
    47    instance:
    48        /*! OA0 control register 0 */
    49        config OAxCTL0_t OA0CTL0 = {
    50          OAN : OAN_0,
    51          OAP : OAP_0,
    52          OAPM : OAPM_0,
    53          OAADC0 : OAADC0_OFF,
    54          OAADC1 : OAADC1_OFF
    55        };
    56    
    57        /*! OA0 control register 1 */
    58        config OAxCTL1_t OA0CTL1 = {
    59          OAFBR : OAFBR_0,
    60          OAFC : OAFC_0,
    61          OANEXT : OANEXT_OFF,
    62          OARRIP : OARRIP_OFF,
    63        };
    64    
    65        /*! OA1 control register 0 */
    66        config OAxCTL0_t OA1CTL0 = {
    67          OAN : OAN_0,
    68          OAP : OAP_0,
    69          OAPM : OAPM_0,
    70          OAADC0 : OAADC0_OFF,
    71          OAADC1 : OAADC1_OFF
    72        };
    73    
    74        /*! OA1 control register 1 */
    75        config OAxCTL1_t OA1CTL1 = {
    76          OAFBR : OAFBR_0,
    77          OAFC : OAFC_0,
    78          OANEXT : OANEXT_OFF,
    79          OARRIP : OARRIP_OFF,
    80        };
    81    
    82        /*! Determine if each Register needs to be forced set or not */
    83        readonly config ForceSetDefaultRegister_t forceSetDefaultRegister[] =
    84        [
    85            { register : "OA0CTL0" , regForceSet : false },
    86            { register : "OA0CTL1" , regForceSet : false },
    87            { register : "OA1CTL0" , regForceSet : false },
    88            { register : "OA1CTL1" , regForceSet : false }
    89        ];
    90    }