xref: /btstack/port/msp432p401lp-cc256x/ti/devices/msp432p4xx/driverlib/sysctl.c (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 /* Standard Includes */
33*5fd0122aSMatthias Ringwald #include <stdint.h>
34*5fd0122aSMatthias Ringwald #include <stdbool.h>
35*5fd0122aSMatthias Ringwald 
36*5fd0122aSMatthias Ringwald /* DriverLib Includes */
37*5fd0122aSMatthias Ringwald #include <ti/devices/msp432p4xx/driverlib/sysctl.h>
38*5fd0122aSMatthias Ringwald #include <ti/devices/msp432p4xx/driverlib/debug.h>
39*5fd0122aSMatthias Ringwald 
40*5fd0122aSMatthias Ringwald /* Define to ensure that our current MSP432 has the SYSCTL module. This
41*5fd0122aSMatthias Ringwald     definition is included in the device specific header file */
42*5fd0122aSMatthias Ringwald #ifdef __MCU_HAS_SYSCTL__
43*5fd0122aSMatthias Ringwald 
44*5fd0122aSMatthias Ringwald #ifdef DEBUG
45*5fd0122aSMatthias Ringwald 
SysCtlSRAMBankValid(uint8_t sramBank)46*5fd0122aSMatthias Ringwald static bool SysCtlSRAMBankValid(uint8_t sramBank)
47*5fd0122aSMatthias Ringwald {
48*5fd0122aSMatthias Ringwald     return(
49*5fd0122aSMatthias Ringwald             sramBank == SYSCTL_SRAM_BANK7 ||
50*5fd0122aSMatthias Ringwald             sramBank == SYSCTL_SRAM_BANK6 ||
51*5fd0122aSMatthias Ringwald             sramBank == SYSCTL_SRAM_BANK5 ||
52*5fd0122aSMatthias Ringwald             sramBank == SYSCTL_SRAM_BANK4 ||
53*5fd0122aSMatthias Ringwald             sramBank == SYSCTL_SRAM_BANK3 ||
54*5fd0122aSMatthias Ringwald             sramBank == SYSCTL_SRAM_BANK2 ||
55*5fd0122aSMatthias Ringwald             sramBank == SYSCTL_SRAM_BANK1
56*5fd0122aSMatthias Ringwald     );
57*5fd0122aSMatthias Ringwald }
58*5fd0122aSMatthias Ringwald 
SysCtlSRAMBankValidRet(uint8_t sramBank)59*5fd0122aSMatthias Ringwald static bool SysCtlSRAMBankValidRet(uint8_t sramBank)
60*5fd0122aSMatthias Ringwald {
61*5fd0122aSMatthias Ringwald     sramBank &= ~(SYSCTL_SRAM_BANK7 & SYSCTL_SRAM_BANK6 &
62*5fd0122aSMatthias Ringwald             SYSCTL_SRAM_BANK5 & SYSCTL_SRAM_BANK4 &
63*5fd0122aSMatthias Ringwald             SYSCTL_SRAM_BANK3 & SYSCTL_SRAM_BANK2 &
64*5fd0122aSMatthias Ringwald             SYSCTL_SRAM_BANK1);
65*5fd0122aSMatthias Ringwald 
66*5fd0122aSMatthias Ringwald     return (sramBank == 0);
67*5fd0122aSMatthias Ringwald }
68*5fd0122aSMatthias Ringwald 
SysCtlPeripheralIsValid(uint16_t hwPeripheral)69*5fd0122aSMatthias Ringwald static bool SysCtlPeripheralIsValid (uint16_t hwPeripheral)
70*5fd0122aSMatthias Ringwald {
71*5fd0122aSMatthias Ringwald     hwPeripheral &= ~(SYSCTL_PERIPH_DMA & SYSCTL_PERIPH_WDT &
72*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_ADC & SYSCTL_PERIPH_EUSCIB3 &
73*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_EUSCIB2 & SYSCTL_PERIPH_EUSCIB1 &
74*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_EUSCIB0 & SYSCTL_PERIPH_EUSCIA3 &
75*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_EUSCIA2 & SYSCTL_PERIPH_EUSCIA1 &
76*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_EUSCIA0 & SYSCTL_PERIPH_TIMER32_0_MODULE &
77*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_TIMER16_3 & SYSCTL_PERIPH_TIMER16_2 &
78*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_TIMER16_2 & SYSCTL_PERIPH_TIMER16_1 &
79*5fd0122aSMatthias Ringwald             SYSCTL_PERIPH_TIMER16_0);
80*5fd0122aSMatthias Ringwald 
81*5fd0122aSMatthias Ringwald     return (hwPeripheral == 0);
82*5fd0122aSMatthias Ringwald }
83*5fd0122aSMatthias Ringwald #endif
84*5fd0122aSMatthias Ringwald 
SysCtl_getTLVInfo(uint_fast8_t tag,uint_fast8_t instance,uint_fast8_t * length,uint32_t ** data_address)85*5fd0122aSMatthias Ringwald void SysCtl_getTLVInfo(uint_fast8_t tag, uint_fast8_t instance,
86*5fd0122aSMatthias Ringwald         uint_fast8_t *length, uint32_t **data_address)
87*5fd0122aSMatthias Ringwald {
88*5fd0122aSMatthias Ringwald     /* TLV Structure Start Address */
89*5fd0122aSMatthias Ringwald     uint32_t *TLV_address = (uint32_t *) TLV_START;
90*5fd0122aSMatthias Ringwald 
91*5fd0122aSMatthias Ringwald     while (((*TLV_address != tag)) // check for tag and instance
92*5fd0122aSMatthias Ringwald             && (*TLV_address != TLV_TAGEND))         // do range check first
93*5fd0122aSMatthias Ringwald     {
94*5fd0122aSMatthias Ringwald         if (*TLV_address == tag)
95*5fd0122aSMatthias Ringwald         {
96*5fd0122aSMatthias Ringwald             if(instance == 0)
97*5fd0122aSMatthias Ringwald             {
98*5fd0122aSMatthias Ringwald                 break;
99*5fd0122aSMatthias Ringwald             }
100*5fd0122aSMatthias Ringwald 
101*5fd0122aSMatthias Ringwald             /* Repeat until requested instance is reached */
102*5fd0122aSMatthias Ringwald             instance--;
103*5fd0122aSMatthias Ringwald         }
104*5fd0122aSMatthias Ringwald 
105*5fd0122aSMatthias Ringwald         TLV_address += (*(TLV_address + 1)) + 2;
106*5fd0122aSMatthias Ringwald     }
107*5fd0122aSMatthias Ringwald 
108*5fd0122aSMatthias Ringwald     /* Check if Tag match happened... */
109*5fd0122aSMatthias Ringwald     if (*TLV_address == tag)
110*5fd0122aSMatthias Ringwald     {
111*5fd0122aSMatthias Ringwald         /* Return length = Address + 1 */
112*5fd0122aSMatthias Ringwald         *length = (*(TLV_address + 1))*4;
113*5fd0122aSMatthias Ringwald         /* Return address of first data/value info = Address + 2 */
114*5fd0122aSMatthias Ringwald         *data_address = (uint32_t *) (TLV_address + 2);
115*5fd0122aSMatthias Ringwald     }
116*5fd0122aSMatthias Ringwald     // If there was no tag match and the end of TLV structure was reached..
117*5fd0122aSMatthias Ringwald     else
118*5fd0122aSMatthias Ringwald     {
119*5fd0122aSMatthias Ringwald         // Return 0 for TAG not found
120*5fd0122aSMatthias Ringwald         *length = 0;
121*5fd0122aSMatthias Ringwald         // Return 0 for TAG not found
122*5fd0122aSMatthias Ringwald         *data_address = 0;
123*5fd0122aSMatthias Ringwald     }
124*5fd0122aSMatthias Ringwald }
125*5fd0122aSMatthias Ringwald 
SysCtl_getSRAMSize(void)126*5fd0122aSMatthias Ringwald uint_least32_t SysCtl_getSRAMSize(void)
127*5fd0122aSMatthias Ringwald {
128*5fd0122aSMatthias Ringwald     return SYSCTL->SRAM_SIZE;
129*5fd0122aSMatthias Ringwald }
130*5fd0122aSMatthias Ringwald 
SysCtl_getFlashSize(void)131*5fd0122aSMatthias Ringwald uint_least32_t SysCtl_getFlashSize(void)
132*5fd0122aSMatthias Ringwald {
133*5fd0122aSMatthias Ringwald     return SYSCTL->FLASH_SIZE;
134*5fd0122aSMatthias Ringwald }
135*5fd0122aSMatthias Ringwald 
SysCtl_disableNMISource(uint_fast8_t flags)136*5fd0122aSMatthias Ringwald void SysCtl_disableNMISource(uint_fast8_t flags)
137*5fd0122aSMatthias Ringwald {
138*5fd0122aSMatthias Ringwald     SYSCTL->NMI_CTLSTAT &= ~(flags);
139*5fd0122aSMatthias Ringwald }
140*5fd0122aSMatthias Ringwald 
SysCtl_enableNMISource(uint_fast8_t flags)141*5fd0122aSMatthias Ringwald void SysCtl_enableNMISource(uint_fast8_t flags)
142*5fd0122aSMatthias Ringwald {
143*5fd0122aSMatthias Ringwald     SYSCTL->NMI_CTLSTAT |= flags;
144*5fd0122aSMatthias Ringwald }
145*5fd0122aSMatthias Ringwald 
SysCtl_getNMISourceStatus(void)146*5fd0122aSMatthias Ringwald uint_fast8_t SysCtl_getNMISourceStatus(void)
147*5fd0122aSMatthias Ringwald {
148*5fd0122aSMatthias Ringwald     return SYSCTL->NMI_CTLSTAT & (SYSCTL_NMI_CTLSTAT_CS_FLG |
149*5fd0122aSMatthias Ringwald                                     SYSCTL_NMI_CTLSTAT_PSS_FLG |
150*5fd0122aSMatthias Ringwald                                     SYSCTL_NMI_CTLSTAT_PCM_FLG |
151*5fd0122aSMatthias Ringwald                                     SYSCTL_NMI_CTLSTAT_PIN_FLG);
152*5fd0122aSMatthias Ringwald }
153*5fd0122aSMatthias Ringwald 
SysCtl_enableSRAMBank(uint_fast8_t sramBank)154*5fd0122aSMatthias Ringwald void SysCtl_enableSRAMBank(uint_fast8_t sramBank)
155*5fd0122aSMatthias Ringwald {
156*5fd0122aSMatthias Ringwald     ASSERT(SysCtlSRAMBankValid(sramBank));
157*5fd0122aSMatthias Ringwald 
158*5fd0122aSMatthias Ringwald     /* Waiting for SRAM Ready Bit to be set */
159*5fd0122aSMatthias Ringwald     while (!(SYSCTL->SRAM_BANKEN & SYSCTL_SRAM_BANKEN_SRAM_RDY))
160*5fd0122aSMatthias Ringwald         ;
161*5fd0122aSMatthias Ringwald 
162*5fd0122aSMatthias Ringwald     SYSCTL->SRAM_BANKEN = (sramBank | SYSCTL_SRAM_BANKEN_BNK0_EN);
163*5fd0122aSMatthias Ringwald }
164*5fd0122aSMatthias Ringwald 
SysCtl_disableSRAMBank(uint_fast8_t sramBank)165*5fd0122aSMatthias Ringwald void SysCtl_disableSRAMBank(uint_fast8_t sramBank)
166*5fd0122aSMatthias Ringwald {
167*5fd0122aSMatthias Ringwald     ASSERT(SysCtlSRAMBankValid(sramBank));
168*5fd0122aSMatthias Ringwald 
169*5fd0122aSMatthias Ringwald     /* Waiting for SRAM Ready Bit to be set */
170*5fd0122aSMatthias Ringwald     while (!(SYSCTL->SRAM_BANKEN & SYSCTL_SRAM_BANKEN_SRAM_RDY))
171*5fd0122aSMatthias Ringwald        ;
172*5fd0122aSMatthias Ringwald 
173*5fd0122aSMatthias Ringwald     switch (sramBank)
174*5fd0122aSMatthias Ringwald     {
175*5fd0122aSMatthias Ringwald     case SYSCTL_SRAM_BANK7:
176*5fd0122aSMatthias Ringwald         sramBank = SYSCTL_SRAM_BANK6 +  SYSCTL_SRAM_BANK5 + SYSCTL_SRAM_BANK4
177*5fd0122aSMatthias Ringwald                         + SYSCTL_SRAM_BANK3 + SYSCTL_SRAM_BANK2
178*5fd0122aSMatthias Ringwald                         + SYSCTL_SRAM_BANK1;
179*5fd0122aSMatthias Ringwald         break;
180*5fd0122aSMatthias Ringwald     case SYSCTL_SRAM_BANK6:
181*5fd0122aSMatthias Ringwald         sramBank =   SYSCTL_SRAM_BANK5 + SYSCTL_SRAM_BANK4
182*5fd0122aSMatthias Ringwald                         + SYSCTL_SRAM_BANK3 + SYSCTL_SRAM_BANK2
183*5fd0122aSMatthias Ringwald                         + SYSCTL_SRAM_BANK1;
184*5fd0122aSMatthias Ringwald         break;
185*5fd0122aSMatthias Ringwald     case SYSCTL_SRAM_BANK5:
186*5fd0122aSMatthias Ringwald         sramBank =   SYSCTL_SRAM_BANK4 + SYSCTL_SRAM_BANK3
187*5fd0122aSMatthias Ringwald                 + SYSCTL_SRAM_BANK2 + SYSCTL_SRAM_BANK1;
188*5fd0122aSMatthias Ringwald         break;
189*5fd0122aSMatthias Ringwald     case SYSCTL_SRAM_BANK4:
190*5fd0122aSMatthias Ringwald         sramBank =   SYSCTL_SRAM_BANK3 + SYSCTL_SRAM_BANK2
191*5fd0122aSMatthias Ringwald                         + SYSCTL_SRAM_BANK1;
192*5fd0122aSMatthias Ringwald         break;
193*5fd0122aSMatthias Ringwald     case SYSCTL_SRAM_BANK3:
194*5fd0122aSMatthias Ringwald         sramBank =   SYSCTL_SRAM_BANK2 + SYSCTL_SRAM_BANK1;
195*5fd0122aSMatthias Ringwald         break;
196*5fd0122aSMatthias Ringwald     case SYSCTL_SRAM_BANK2:
197*5fd0122aSMatthias Ringwald         sramBank = SYSCTL_SRAM_BANK1;
198*5fd0122aSMatthias Ringwald         break;
199*5fd0122aSMatthias Ringwald     case SYSCTL_SRAM_BANK1:
200*5fd0122aSMatthias Ringwald         sramBank = 0;
201*5fd0122aSMatthias Ringwald         break;
202*5fd0122aSMatthias Ringwald     default:
203*5fd0122aSMatthias Ringwald         return;
204*5fd0122aSMatthias Ringwald     }
205*5fd0122aSMatthias Ringwald 
206*5fd0122aSMatthias Ringwald     SYSCTL->SRAM_BANKEN = (sramBank | SYSCTL_SRAM_BANKEN_BNK0_EN);
207*5fd0122aSMatthias Ringwald }
208*5fd0122aSMatthias Ringwald 
SysCtl_enableSRAMBankRetention(uint_fast8_t sramBank)209*5fd0122aSMatthias Ringwald void SysCtl_enableSRAMBankRetention(uint_fast8_t sramBank)
210*5fd0122aSMatthias Ringwald {
211*5fd0122aSMatthias Ringwald     ASSERT(SysCtlSRAMBankValidRet(sramBank));
212*5fd0122aSMatthias Ringwald 
213*5fd0122aSMatthias Ringwald     /* Waiting for SRAM Ready Bit to be set */
214*5fd0122aSMatthias Ringwald     while (!(SYSCTL->SRAM_BANKRET & SYSCTL_SRAM_BANKRET_SRAM_RDY))
215*5fd0122aSMatthias Ringwald             ;
216*5fd0122aSMatthias Ringwald 
217*5fd0122aSMatthias Ringwald     SYSCTL->SRAM_BANKRET |= sramBank;
218*5fd0122aSMatthias Ringwald }
219*5fd0122aSMatthias Ringwald 
SysCtl_disableSRAMBankRetention(uint_fast8_t sramBank)220*5fd0122aSMatthias Ringwald void SysCtl_disableSRAMBankRetention(uint_fast8_t sramBank)
221*5fd0122aSMatthias Ringwald {
222*5fd0122aSMatthias Ringwald     ASSERT(SysCtlSRAMBankValidRet(sramBank));
223*5fd0122aSMatthias Ringwald 
224*5fd0122aSMatthias Ringwald     /* Waiting for SRAM Ready Bit to be set */
225*5fd0122aSMatthias Ringwald     while (!(SYSCTL->SRAM_BANKRET & SYSCTL_SRAM_BANKRET_SRAM_RDY))
226*5fd0122aSMatthias Ringwald             ;
227*5fd0122aSMatthias Ringwald 
228*5fd0122aSMatthias Ringwald     SYSCTL->SRAM_BANKRET &= ~sramBank;
229*5fd0122aSMatthias Ringwald }
230*5fd0122aSMatthias Ringwald 
SysCtl_rebootDevice(void)231*5fd0122aSMatthias Ringwald void SysCtl_rebootDevice(void)
232*5fd0122aSMatthias Ringwald {
233*5fd0122aSMatthias Ringwald     SYSCTL->REBOOT_CTL = (SYSCTL_REBOOT_CTL_REBOOT | SYSCTL_REBOOT_KEY);
234*5fd0122aSMatthias Ringwald }
235*5fd0122aSMatthias Ringwald 
SysCtl_enablePeripheralAtCPUHalt(uint_fast16_t devices)236*5fd0122aSMatthias Ringwald void SysCtl_enablePeripheralAtCPUHalt(uint_fast16_t devices)
237*5fd0122aSMatthias Ringwald {
238*5fd0122aSMatthias Ringwald     ASSERT(SysCtlPeripheralIsValid(devices));
239*5fd0122aSMatthias Ringwald     SYSCTL->PERIHALT_CTL &= ~devices;
240*5fd0122aSMatthias Ringwald }
241*5fd0122aSMatthias Ringwald 
SysCtl_disablePeripheralAtCPUHalt(uint_fast16_t devices)242*5fd0122aSMatthias Ringwald void SysCtl_disablePeripheralAtCPUHalt(uint_fast16_t devices)
243*5fd0122aSMatthias Ringwald {
244*5fd0122aSMatthias Ringwald     ASSERT(SysCtlPeripheralIsValid(devices));
245*5fd0122aSMatthias Ringwald     SYSCTL->PERIHALT_CTL |= devices;
246*5fd0122aSMatthias Ringwald }
247*5fd0122aSMatthias Ringwald 
SysCtl_setWDTTimeoutResetType(uint_fast8_t resetType)248*5fd0122aSMatthias Ringwald void SysCtl_setWDTTimeoutResetType(uint_fast8_t resetType)
249*5fd0122aSMatthias Ringwald {
250*5fd0122aSMatthias Ringwald     if (resetType)
251*5fd0122aSMatthias Ringwald         SYSCTL->WDTRESET_CTL |=
252*5fd0122aSMatthias Ringwald                 SYSCTL_WDTRESET_CTL_TIMEOUT;
253*5fd0122aSMatthias Ringwald     else
254*5fd0122aSMatthias Ringwald         SYSCTL->WDTRESET_CTL &= ~SYSCTL_WDTRESET_CTL_TIMEOUT;
255*5fd0122aSMatthias Ringwald }
256*5fd0122aSMatthias Ringwald 
SysCtl_setWDTPasswordViolationResetType(uint_fast8_t resetType)257*5fd0122aSMatthias Ringwald void SysCtl_setWDTPasswordViolationResetType(uint_fast8_t resetType)
258*5fd0122aSMatthias Ringwald {
259*5fd0122aSMatthias Ringwald     ASSERT(resetType <= SYSCTL_HARD_RESET);
260*5fd0122aSMatthias Ringwald 
261*5fd0122aSMatthias Ringwald     if (resetType)
262*5fd0122aSMatthias Ringwald         SYSCTL->WDTRESET_CTL |=
263*5fd0122aSMatthias Ringwald                 SYSCTL_WDTRESET_CTL_VIOLATION;
264*5fd0122aSMatthias Ringwald     else
265*5fd0122aSMatthias Ringwald         SYSCTL->WDTRESET_CTL &= ~SYSCTL_WDTRESET_CTL_VIOLATION;
266*5fd0122aSMatthias Ringwald }
267*5fd0122aSMatthias Ringwald 
SysCtl_enableGlitchFilter(void)268*5fd0122aSMatthias Ringwald void SysCtl_enableGlitchFilter(void)
269*5fd0122aSMatthias Ringwald {
270*5fd0122aSMatthias Ringwald     SYSCTL->DIO_GLTFLT_CTL |= SYSCTL_DIO_GLTFLT_CTL_GLTCH_EN;
271*5fd0122aSMatthias Ringwald }
272*5fd0122aSMatthias Ringwald 
SysCtl_disableGlitchFilter(void)273*5fd0122aSMatthias Ringwald void SysCtl_disableGlitchFilter(void)
274*5fd0122aSMatthias Ringwald {
275*5fd0122aSMatthias Ringwald     SYSCTL->DIO_GLTFLT_CTL &= ~SYSCTL_DIO_GLTFLT_CTL_GLTCH_EN;
276*5fd0122aSMatthias Ringwald }
277*5fd0122aSMatthias Ringwald 
SysCtl_getTempCalibrationConstant(uint32_t refVoltage,uint32_t temperature)278*5fd0122aSMatthias Ringwald uint_fast16_t SysCtl_getTempCalibrationConstant(uint32_t refVoltage,
279*5fd0122aSMatthias Ringwald         uint32_t temperature)
280*5fd0122aSMatthias Ringwald {
281*5fd0122aSMatthias Ringwald     return HWREG16(TLV_BASE + refVoltage + temperature);
282*5fd0122aSMatthias Ringwald }
283*5fd0122aSMatthias Ringwald 
284*5fd0122aSMatthias Ringwald #endif /* __MCU_HAS_SYSCTL__ */
285