Radio Control Layer (RCL)
hal.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020-2024, 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 __rcl_hal_h__
34 #define __rcl_hal_h__
35 
36 #include <stdint.h>
37 
38 void hal_init_fsm(void (*setupFsmCb)(void), void (*schedFsmCb)(void),
39  void (*commandFsmCb)(void));
40 void hal_trigger_command_fsm(void);
41 void hal_trigger_dispatch_fsm(void);
42 void hal_trigger_scheduler_fsm(void);
43 uint32_t hal_get_command_ifg_reg(void);
44 uint32_t hal_get_dispatch_ifg_reg(void);
45 uint32_t hal_get_current_time(void);
46 void hal_enable_setup_time_irq(void);
47 void hal_setup_setup_time(uint32_t setupTime);
48 void hal_setup_start_time(uint32_t startTime);
49 void hal_setup_packet_timeout(uint32_t stopTime);
50 void hal_setup_hard_stop_time(uint32_t stopTime);
53 void hal_setup_graceful_stop_time(uint32_t stopTime);
55 void hal_cancel_setup_time(void);
56 void hal_cancel_start_time(void);
57 void hal_cancel_packet_timeout(void);
58 void hal_cancel_hard_stop_time(void);
60 void hal_init_dispatch_radio_interrupts(uint32_t mask);
61 void hal_enable_command_radio_interrupt(uint32_t mask);
62 void hal_disable_command_radio_interrupt(uint32_t mask);
63 void hal_clear_command_radio_interrupt(uint32_t mask);
66 void hal_temperature_init(void);
67 int16_t hal_get_temperature(void);
68 uint16_t hal_get_vdds_voltage(void);
69 uint32_t hal_get_hfxt_ratio(void);
70 uint32_t hal_get_hfxt_ratio_default(void);
71 
72 typedef enum {
80 
81 typedef enum {
86 
88 void hal_setup_cmd_start_cap(void);
89 void hal_arm_cmd_start_cap(void);
90 uint32_t hal_get_cmd_start_cap(void);
91 void hal_setup_sync_found_cap(void);
92 void hal_arm_sync_found_cap(void);
93 uint32_t hal_get_sync_found_cap(void);
94 void hal_setup_cmd_done_cap(void);
95 void hal_arm_cmd_done_cap(void);
96 uint32_t hal_get_cmd_done_cap(void);
97 void hal_set_rcl_clock_enable(uint16_t mask);
98 void hal_clear_rcl_clock_enable(uint16_t mask);
99 uint8_t hal_set_dcdc_ipeak_setting(uint8_t setting);
100 void hal_enable_clk_buffer(void);
105 void hal_power_open(void (*rclPowerNotifyFunction)(RCL_PowerEvent));
106 void hal_power_close(void);
107 void hal_set_temperature_notification(int16_t currentTemperature, uint16_t temperatureRange, void (*rclTemperatureNotify)(int16_t));
109 
110 #endif
void hal_trigger_scheduler_fsm(void)
Definition: hal_cc23x0.c:182
void hal_enable_hard_stop_time_irq(void)
Definition: hal_cc23x0.c:233
void hal_disable_command_radio_interrupt(uint32_t mask)
Definition: hal_cc23x0.c:367
void hal_disable_all_command_radio_interrupts(void)
Definition: hal_cc23x0.c:373
void hal_arm_cmd_done_cap(void)
void hal_power_open(void(*rclPowerNotifyFunction)(RCL_PowerEvent))
Definition: hal_cc23x0.c:480
Definition: hal.h:84
void hal_arm_cmd_start_cap(void)
Definition: hal.h:74
uint32_t hal_get_hfxt_ratio_default(void)
Definition: hal_cc23x0.c:520
void hal_disable_all_dispatch_radio_interrupts(void)
Definition: hal_cc23x0.c:379
void hal_enable_setup_time_irq(void)
Definition: hal_cc23x0.c:199
void hal_setup_cmd_start_cap(void)
void hal_setup_start_time(uint32_t startTime)
Definition: hal_cc23x0.c:217
uint32_t hal_get_sync_found_cap(void)
void hal_init_dispatch_radio_interrupts(uint32_t mask)
Definition: hal_cc23x0.c:350
void hal_power_close(void)
Definition: hal_cc23x0.c:489
RCL_PowerEvent
Definition: hal.h:81
void hal_setup_setup_time(uint32_t setupTime)
Definition: hal_cc23x0.c:204
uint32_t hal_get_current_time(void)
Definition: hal_cc23x0.c:188
void hal_set_temperature_notification(int16_t currentTemperature, uint16_t temperatureRange, void(*rclTemperatureNotify)(int16_t))
Definition: hal_cc23x0.c:544
void hal_init_fsm(void(*setupFsmCb)(void), void(*schedFsmCb)(void), void(*commandFsmCb)(void))
Definition: hal_cc23x0.c:137
uint32_t hal_get_cmd_done_cap(void)
void hal_clear_rcl_clock_enable(uint16_t mask)
Definition: hal_cc23x0.c:392
void hal_setup_cmd_done_cap(void)
Definition: hal.h:78
void hal_power_set_standby_constraint(void)
Definition: hal_cc23x0.c:440
void hal_cancel_packet_timeout(void)
void hal_cancel_start_time(void)
Definition: hal_cc23x0.c:273
void hal_enable_graceful_stop_time_irq(void)
Definition: hal_cc23x0.c:250
uint32_t hal_get_dispatch_ifg_reg(void)
Definition: hal_cc23x0.c:123
void hal_disable_hard_stop_time_irq(void)
Definition: hal_cc23x0.c:238
int16_t hal_get_temperature(void)
void hal_enable_command_radio_interrupt(uint32_t mask)
Definition: hal_cc23x0.c:356
void hal_set_rcl_clock_enable(uint16_t mask)
Definition: hal_cc23x0.c:385
void hal_trigger_command_fsm(void)
Definition: hal_cc23x0.c:170
void hal_cancel_setup_time(void)
Definition: hal_cc23x0.c:268
uint16_t hal_get_vdds_voltage(void)
Definition: hal.h:83
uint32_t hal_get_hfxt_ratio(void)
Definition: hal_cc23x0.c:515
Definition: hal.h:76
void hal_enable_clk_buffer(void)
Definition: hal_cc23x0.c:291
uint32_t hal_get_command_ifg_reg(void)
Definition: hal_cc23x0.c:110
void hal_trigger_dispatch_fsm(void)
Definition: hal_cc23x0.c:176
Definition: hal.h:82
void hal_setup_graceful_stop_time(uint32_t stopTime)
Definition: hal_cc23x0.c:243
void hal_power_set_swtcxo_update_constraint(void)
Definition: hal_cc23x0.c:459
void hal_setup_packet_timeout(uint32_t stopTime)
void hal_power_release_standby_constraint(void)
Definition: hal_cc23x0.c:449
HalTimerEvent hal_check_clear_timer_compare(void)
Definition: hal_cc23x0.c:310
void hal_temperature_init(void)
Definition: hal_cc23x0.c:498
void hal_setup_hard_stop_time(uint32_t stopTime)
Definition: hal_cc23x0.c:225
void hal_cancel_hard_stop_time(void)
Definition: hal_cc23x0.c:278
void hal_power_release_swtcxo_update_constraint(void)
Definition: hal_cc23x0.c:467
void hal_clear_command_radio_interrupt(uint32_t mask)
Definition: hal_cc23x0.c:362
void hal_arm_sync_found_cap(void)
HalTimerEvent
Definition: hal.h:72
Definition: hal.h:75
void hal_setup_sync_found_cap(void)
Definition: hal_cc23x0.c:299
uint8_t hal_set_dcdc_ipeak_setting(uint8_t setting)
Definition: hal_cc23x0.c:399
Definition: hal.h:73
Definition: hal.h:77
void hal_cancel_graceful_stop_time(void)
Definition: hal_cc23x0.c:283
void hal_stop_temperature_notification(void)
Definition: hal_cc23x0.c:556
uint32_t hal_get_cmd_start_cap(void)