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