xref: /btstack/port/msp432p401lp-cc256x/ti/devices/msp432p4xx/driverlib/pmap.h (revision 5fd0122a3e19d95e11e1f3eb8a08a2b2acb2557e)
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