Radio Control Layer (RCL)
RCL_Hal.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020-2025, 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 #ifndef ti_drivers_rcl_hal_RCL_Hal__include
34 #define ti_drivers_rcl_hal_RCL_Hal__include
35 
36 #include <stdint.h>
37 
38 void RCL_Hal_initFsm(void (*setupFsmCb)(void), void (*schedFsmCb)(void),
39  void (*commandFsmCb)(void));
40 void RCL_Hal_triggerCommandFsm(void);
43 uint32_t RCL_Hal_getCommandIfgReg(void);
44 uint32_t RCL_Hal_getDispatchIfgReg(void);
45 uint32_t RCL_Hal_getCurrentTime(void);
47 void RCL_Hal_setupSetupTime(uint32_t setupTime);
48 void RCL_Hal_setupStartTime(uint32_t startTime);
49 void RCL_Hal_setupPacketTimeout(uint32_t stopTime);
50 void RCL_Hal_setupHardStopTime(uint32_t stopTime);
53 void RCL_Hal_setupGracefulStopTime(uint32_t stopTime);
55 void RCL_Hal_cancelSetupTime(void);
56 void RCL_Hal_cancelStartTime(void);
60 void RCL_Hal_initDispatchRadioInterrupts(uint32_t mask);
61 void RCL_Hal_enableCommandRadioInterrupt(uint32_t mask);
62 void RCL_Hal_disableCommandRadioInterrupt(uint32_t mask);
63 void RCL_Hal_clearCommandRadioInterrupt(uint32_t mask);
66 void RCL_Hal_temperatureInit(void);
67 int16_t RCL_Hal_getTemperature(void);
68 uint16_t RCL_Hal_getVddsVoltage(void);
69 uint32_t RCL_Hal_getHfxtRatio(void);
70 uint32_t RCL_Hal_getHfxtRatioDefault(void);
71 
72 typedef enum {
80 
81 typedef enum {
86 
88 void RCL_Hal_setupCmdStartCap(void);
89 void RCL_Hal_armCmdStartCap(void);
90 uint32_t RCL_Hal_getCmdStartCap(void);
91 void RCL_Hal_setupSyncFoundCap(void);
92 void RCL_Hal_armSyncFoundCap(void);
93 uint32_t RCL_Hal_getSyncFoundCap(void);
94 void RCL_Hal_setupCmdDoneCap(void);
95 void RCL_Hal_armCmdDoneCap(void);
96 uint32_t RCL_Hal_getCmdDoneCap(void);
97 void RCL_Hal_setRclClockEnable(uint16_t mask);
98 void RCL_Hal_clearRclClockEnable(uint16_t mask);
99 uint8_t RCL_Hal_setDcdcIpeakSetting(uint8_t setting);
100 void RCL_Hal_enableClkBuffer(void);
105 void RCL_Hal_powerOpen(void (*rclPowerNotifyFunction)(RCL_PowerEvent));
106 void RCL_Hal_powerClose(void);
107 void RCL_Hal_setTemperatureNotification(int16_t currentTemperature, uint16_t temperatureRange, void (*rclTemperatureNotify)(int16_t));
109 
110 #endif /* ti_drivers_rcl_hal_RCL_Hal__include */
uint32_t RCL_Hal_getHfxtRatioDefault(void)
Definition: RCLLPF3_Hal.c:529
Definition: RCL_Hal.h:77
uint32_t RCL_Hal_getCommandIfgReg(void)
Definition: RCLLPF3_Hal.c:110
uint32_t RCL_Hal_getCurrentTime(void)
Definition: RCLLPF3_Hal.c:188
void RCL_Hal_powerReleaseSwTcxoUpdateConstraint(void)
Definition: RCLLPF3_Hal.c:476
uint32_t RCL_Hal_getHfxtRatio(void)
Definition: RCLLPF3_Hal.c:524
Definition: RCL_Hal.h:84
int16_t RCL_Hal_getTemperature(void)
Definition: RCL_Hal.h:73
void RCL_Hal_powerSetStandbyConstraint(void)
Definition: RCLLPF3_Hal.c:449
void RCL_Hal_cancelSetupTime(void)
Definition: RCLLPF3_Hal.c:268
Definition: RCL_Hal.h:76
void RCL_Hal_triggerSchedulerFsm(void)
Definition: RCLLPF3_Hal.c:182
HalTimerEvent
Definition: RCL_Hal.h:72
void RCL_Hal_armCmdStartCap(void)
void RCL_Hal_setupCmdDoneCap(void)
RCL_PowerEvent
Definition: RCL_Hal.h:81
void RCL_Hal_setupHardStopTime(uint32_t stopTime)
Definition: RCLLPF3_Hal.c:225
Definition: RCL_Hal.h:75
void RCL_Hal_armCmdDoneCap(void)
void RCL_Hal_triggerCommandFsm(void)
Definition: RCLLPF3_Hal.c:170
void RCL_Hal_setupCmdStartCap(void)
void RCL_Hal_clearCommandRadioInterrupt(uint32_t mask)
Definition: RCLLPF3_Hal.c:367
uint8_t RCL_Hal_setDcdcIpeakSetting(uint8_t setting)
Definition: RCLLPF3_Hal.c:404
void RCL_Hal_disableAllCommandRadioInterrupts(void)
Definition: RCLLPF3_Hal.c:378
void RCL_Hal_disableAllDispatchRadioInterrupts(void)
Definition: RCLLPF3_Hal.c:384
void RCL_Hal_enableClkBuffer(void)
Definition: RCLLPF3_Hal.c:291
void RCL_Hal_enableSetupTimeIrq(void)
Definition: RCLLPF3_Hal.c:199
void RCL_Hal_powerClose(void)
Definition: RCLLPF3_Hal.c:498
void RCL_Hal_setTemperatureNotification(int16_t currentTemperature, uint16_t temperatureRange, void(*rclTemperatureNotify)(int16_t))
Definition: RCLLPF3_Hal.c:553
Definition: RCL_Hal.h:83
uint32_t RCL_Hal_getCmdStartCap(void)
void RCL_Hal_setupPacketTimeout(uint32_t stopTime)
void RCL_Hal_disableHardStopTimeIrq(void)
Definition: RCLLPF3_Hal.c:238
void RCL_Hal_setupStartTime(uint32_t startTime)
Definition: RCLLPF3_Hal.c:217
Definition: RCL_Hal.h:74
void RCL_Hal_powerSetSwTcxoUpdateConstraint(void)
Definition: RCLLPF3_Hal.c:468
uint32_t RCL_Hal_getCmdDoneCap(void)
void RCL_Hal_powerOpen(void(*rclPowerNotifyFunction)(RCL_PowerEvent))
Definition: RCLLPF3_Hal.c:489
uint32_t RCL_Hal_getDispatchIfgReg(void)
Definition: RCLLPF3_Hal.c:123
void RCL_Hal_enableGracefulStopTimeIrq(void)
Definition: RCLLPF3_Hal.c:250
void RCL_Hal_setupSetupTime(uint32_t setupTime)
Definition: RCLLPF3_Hal.c:204
void RCL_Hal_initFsm(void(*setupFsmCb)(void), void(*schedFsmCb)(void), void(*commandFsmCb)(void))
Definition: RCLLPF3_Hal.c:137
void RCL_Hal_cancelHardStopTime(void)
Definition: RCLLPF3_Hal.c:278
void RCL_Hal_cancelStartTime(void)
Definition: RCLLPF3_Hal.c:273
void RCL_Hal_cancelPacketTimeout(void)
void RCL_Hal_initDispatchRadioInterrupts(uint32_t mask)
Definition: RCLLPF3_Hal.c:355
void RCL_Hal_stopTemperatureNotification(void)
Definition: RCLLPF3_Hal.c:565
void RCL_Hal_armSyncFoundCap(void)
Definition: RCL_Hal.h:82
void RCL_Hal_powerReleaseStandbyConstraint(void)
Definition: RCLLPF3_Hal.c:458
void RCL_Hal_setRclClockEnable(uint16_t mask)
Definition: RCLLPF3_Hal.c:390
void RCL_Hal_setupSyncFoundCap(void)
Definition: RCLLPF3_Hal.c:299
void RCL_Hal_disableCommandRadioInterrupt(uint32_t mask)
Definition: RCLLPF3_Hal.c:372
void RCL_Hal_cancelGracefulStopTime(void)
Definition: RCLLPF3_Hal.c:283
void RCL_Hal_enableHardStopTimeIrq(void)
Definition: RCLLPF3_Hal.c:233
uint16_t RCL_Hal_getVddsVoltage(void)
void RCL_Hal_temperatureInit(void)
Definition: RCLLPF3_Hal.c:507
void RCL_Hal_triggerDispatchFsm(void)
Definition: RCLLPF3_Hal.c:176
void RCL_Hal_enableCommandRadioInterrupt(uint32_t mask)
Definition: RCLLPF3_Hal.c:361
void RCL_Hal_clearRclClockEnable(uint16_t mask)
Definition: RCLLPF3_Hal.c:397
uint32_t RCL_Hal_getSyncFoundCap(void)
HalTimerEvent RCL_Hal_checkClearTimerCompare(void)
Definition: RCLLPF3_Hal.c:310
void RCL_Hal_setupGracefulStopTime(uint32_t stopTime)
Definition: RCLLPF3_Hal.c:243
Definition: RCL_Hal.h:78