1*5fd0122aSMatthias Ringwald /* --COPYRIGHT--,BSD 2*5fd0122aSMatthias Ringwald * Copyright (c) 2017, Texas Instruments Incorporated 3*5fd0122aSMatthias Ringwald * All rights reserved. 4*5fd0122aSMatthias Ringwald * 5*5fd0122aSMatthias Ringwald * Redistribution and use in source and binary forms, with or without 6*5fd0122aSMatthias Ringwald * modification, are permitted provided that the following conditions 7*5fd0122aSMatthias Ringwald * are met: 8*5fd0122aSMatthias Ringwald * 9*5fd0122aSMatthias Ringwald * * Redistributions of source code must retain the above copyright 10*5fd0122aSMatthias Ringwald * notice, this list of conditions and the following disclaimer. 11*5fd0122aSMatthias Ringwald * 12*5fd0122aSMatthias Ringwald * * Redistributions in binary form must reproduce the above copyright 13*5fd0122aSMatthias Ringwald * notice, this list of conditions and the following disclaimer in the 14*5fd0122aSMatthias Ringwald * documentation and/or other materials provided with the distribution. 15*5fd0122aSMatthias Ringwald * 16*5fd0122aSMatthias Ringwald * * Neither the name of Texas Instruments Incorporated nor the names of 17*5fd0122aSMatthias Ringwald * its contributors may be used to endorse or promote products derived 18*5fd0122aSMatthias Ringwald * from this software without specific prior written permission. 19*5fd0122aSMatthias Ringwald * 20*5fd0122aSMatthias Ringwald * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21*5fd0122aSMatthias Ringwald * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22*5fd0122aSMatthias Ringwald * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23*5fd0122aSMatthias Ringwald * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24*5fd0122aSMatthias Ringwald * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25*5fd0122aSMatthias Ringwald * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26*5fd0122aSMatthias Ringwald * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27*5fd0122aSMatthias Ringwald * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28*5fd0122aSMatthias Ringwald * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29*5fd0122aSMatthias Ringwald * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30*5fd0122aSMatthias Ringwald * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*5fd0122aSMatthias Ringwald * --/COPYRIGHT--*/ 32*5fd0122aSMatthias Ringwald #ifndef __PMAP_H__ 33*5fd0122aSMatthias Ringwald #define __PMAP_H__ 34*5fd0122aSMatthias Ringwald 35*5fd0122aSMatthias Ringwald //***************************************************************************** 36*5fd0122aSMatthias Ringwald // 37*5fd0122aSMatthias Ringwald //! \addtogroup pmap_api 38*5fd0122aSMatthias Ringwald //! @{ 39*5fd0122aSMatthias Ringwald // 40*5fd0122aSMatthias Ringwald //***************************************************************************** 41*5fd0122aSMatthias Ringwald 42*5fd0122aSMatthias Ringwald //***************************************************************************** 43*5fd0122aSMatthias Ringwald // 44*5fd0122aSMatthias Ringwald // If building with a C++ compiler, make all of the definitions in this header 45*5fd0122aSMatthias Ringwald // have a C binding. 46*5fd0122aSMatthias Ringwald // 47*5fd0122aSMatthias Ringwald //***************************************************************************** 48*5fd0122aSMatthias Ringwald #ifdef __cplusplus 49*5fd0122aSMatthias Ringwald extern "C" 50*5fd0122aSMatthias Ringwald { 51*5fd0122aSMatthias Ringwald #endif 52*5fd0122aSMatthias Ringwald 53*5fd0122aSMatthias Ringwald #include <stdint.h> 54*5fd0122aSMatthias Ringwald #include <ti/devices/msp432p4xx/inc/msp.h> 55*5fd0122aSMatthias Ringwald 56*5fd0122aSMatthias Ringwald //***************************************************************************** 57*5fd0122aSMatthias Ringwald // 58*5fd0122aSMatthias Ringwald //The following are values that can be passed to the PMAP_configurePorts() API 59*5fd0122aSMatthias Ringwald //as the portMapReconfigure parameter. 60*5fd0122aSMatthias Ringwald // 61*5fd0122aSMatthias Ringwald //***************************************************************************** 62*5fd0122aSMatthias Ringwald #define PMAP_ENABLE_RECONFIGURATION PMAP_CTL_PRECFG 63*5fd0122aSMatthias Ringwald #define PMAP_DISABLE_RECONFIGURATION 0x00 64*5fd0122aSMatthias Ringwald 65*5fd0122aSMatthias Ringwald //***************************************************************************** 66*5fd0122aSMatthias Ringwald // 67*5fd0122aSMatthias Ringwald //The following are values that can be passed to the PMAP_configurePorts() API 68*5fd0122aSMatthias Ringwald //as the pxMAPy parameter. 69*5fd0122aSMatthias Ringwald // 70*5fd0122aSMatthias Ringwald //***************************************************************************** 71*5fd0122aSMatthias Ringwald #define PMAP_P1MAP ((uint32_t)P1MAP - PMAP_BASE) 72*5fd0122aSMatthias Ringwald #define PMAP_P2MAP ((uint32_t)P2MAP - PMAP_BASE) 73*5fd0122aSMatthias Ringwald #define PMAP_P3MAP ((uint32_t)P3MAP - PMAP_BASE) 74*5fd0122aSMatthias Ringwald #define PMAP_P4MAP ((uint32_t)P4MAP - PMAP_BASE) 75*5fd0122aSMatthias Ringwald #define PMAP_P5MAP ((uint32_t)P5MAP - PMAP_BASE) 76*5fd0122aSMatthias Ringwald #define PMAP_P6MAP ((uint32_t)P6MAP - PMAP_BASE) 77*5fd0122aSMatthias Ringwald #define PMAP_P7MAP ((uint32_t)P7MAP - PMAP_BASE) 78*5fd0122aSMatthias Ringwald 79*5fd0122aSMatthias Ringwald 80*5fd0122aSMatthias Ringwald //***************************************************************************** 81*5fd0122aSMatthias Ringwald // 82*5fd0122aSMatthias Ringwald //Prototypes for the APIs. 83*5fd0122aSMatthias Ringwald // 84*5fd0122aSMatthias Ringwald //***************************************************************************** 85*5fd0122aSMatthias Ringwald 86*5fd0122aSMatthias Ringwald //***************************************************************************** 87*5fd0122aSMatthias Ringwald // 88*5fd0122aSMatthias Ringwald //! This function configures the MSP432 Port Mapper 89*5fd0122aSMatthias Ringwald //! 90*5fd0122aSMatthias Ringwald //! \param portMapping is the pointer to init Data 91*5fd0122aSMatthias Ringwald //! \param pxMAPy is the Port Mapper to initialize 92*5fd0122aSMatthias Ringwald //! \param numberOfPorts is the number of Ports to initialize 93*5fd0122aSMatthias Ringwald //! \param portMapReconfigure is used to enable/disable reconfiguration 94*5fd0122aSMatthias Ringwald //! Valid values are 95*5fd0122aSMatthias Ringwald //! \b PMAP_ENABLE_RECONFIGURATION 96*5fd0122aSMatthias Ringwald //! \b PMAP_DISABLE_RECONFIGURATION [Default value] 97*5fd0122aSMatthias Ringwald //! Modified registers are \b PMAPKEYID, \b PMAPCTL 98*5fd0122aSMatthias Ringwald //! 99*5fd0122aSMatthias Ringwald //! \return None 100*5fd0122aSMatthias Ringwald // 101*5fd0122aSMatthias Ringwald //***************************************************************************** 102*5fd0122aSMatthias Ringwald extern void PMAP_configurePorts(const uint8_t *portMapping, uint8_t pxMAPy, 103*5fd0122aSMatthias Ringwald uint8_t numberOfPorts, uint8_t portMapReconfigure); 104*5fd0122aSMatthias Ringwald 105*5fd0122aSMatthias Ringwald /* Defines for future devices that might have multiple instances */ 106*5fd0122aSMatthias Ringwald #define PMAP_configurePortsMultipleInstance(a,b,c,d,e) PMAP_configurePorts(b,c,d,e) 107*5fd0122aSMatthias Ringwald 108*5fd0122aSMatthias Ringwald //***************************************************************************** 109*5fd0122aSMatthias Ringwald // 110*5fd0122aSMatthias Ringwald // Mark the end of the C bindings section for C++ compilers. 111*5fd0122aSMatthias Ringwald // 112*5fd0122aSMatthias Ringwald //***************************************************************************** 113*5fd0122aSMatthias Ringwald #ifdef __cplusplus 114*5fd0122aSMatthias Ringwald } 115*5fd0122aSMatthias Ringwald #endif 116*5fd0122aSMatthias Ringwald 117*5fd0122aSMatthias Ringwald //***************************************************************************** 118*5fd0122aSMatthias Ringwald // 119*5fd0122aSMatthias Ringwald // Close the Doxygen group. 120*5fd0122aSMatthias Ringwald //! @} 121*5fd0122aSMatthias Ringwald // 122*5fd0122aSMatthias Ringwald //***************************************************************************** 123*5fd0122aSMatthias Ringwald 124*5fd0122aSMatthias Ringwald #endif 125