RF.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016-2017, 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  */
478 #ifndef ti_drivers_rf__include
479 #define ti_drivers_rf__include
480 
481 #ifdef __cplusplus
482 extern "C" {
483 #endif
484 
485 #include <stdint.h>
486 #include <stdbool.h>
487 
488 #include <ti/drivers/dpl/ClockP.h>
489 #include <ti/drivers/dpl/SemaphoreP.h>
490 
491 #include <ti/devices/DeviceFamily.h>
492 #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h)
493 #include DeviceFamily_constructPath(driverlib/rf_prop_cmd.h)
494 #include DeviceFamily_constructPath(driverlib/rf_ble_cmd.h)
495 
507 #define RF_EventCmdDone (1<<0)
508 #define RF_EventLastCmdDone (1<<1)
509 #define RF_EventFGCmdDone (1<<2)
510 #define RF_EventLastFGCmdDone (1<<3)
511 #define RF_EventTxDone (1<<4)
512 #define RF_EventTXAck (1<<5)
513 #define RF_EventTxCtrl (1<<6)
514 #define RF_EventTxCtrlAck (1<<7)
515 #define RF_EventTxCtrlAckAck (1<<8)
516 #define RF_EventTxRetrans (1<<9)
517 #define RF_EventTxEntryDone (1<<10)
518 #define RF_EventTxBufferChange (1<<11)
519 #define RF_EventRxOk (1<<16)
520 #define RF_EventRxNOk (1<<17)
521 #define RF_EventRxIgnored (1<<18)
522 #define RF_EventRxEmpty (1<<19)
523 #define RF_EventRxCtrl (1<<20)
524 #define RF_EventRxCtrlAck (1<<21)
525 #define RF_EventRxBufFull (1<<22)
526 #define RF_EventRxEntryDone (1<<23)
527 #define RF_EventDataWritten (1<<24)
528 #define RF_EventNDataWritten (1<<25)
529 #define RF_EventRxAborted (1<<26)
530 #define RF_EventRxCollisionDetected (1<<27)
531 #define RF_EventModulesUnlocked (1<<29)
532 #define RF_EventInternalError (uint32_t)(1<<31)
533 #define RF_EventMdmSoft 0x0000002000000000
534 
543 #define RF_EventCmdCancelled 0x1000000000000000
544 #define RF_EventCmdAborted 0x2000000000000000
545 #define RF_EventCmdStopped 0x4000000000000000
546 #define RF_EventRatCh 0x0800000000000000
547 #define RF_EventPowerUp 0x0400000000000000
548 #define RF_EventError 0x0200000000000000
549 #define RF_EventCmdPreempted 0x0100000000000000
550 #define RF_EventRadioFree 0x0080000000000000
551 
569 #define RF_CTRL_SET_INACTIVITY_TIMEOUT 0
570 
579 #define RF_CTRL_UPDATE_SETUP_CMD 1
580 
585 #define RF_CTRL_SET_POWERUP_DURATION_MARGIN 2
586 
593 #define RF_CTRL_SET_RAT_RTC_ERR_TOL_VAL 3
594 
605 #define RF_CTRL_SET_POWER_MGMT 4
606 
627 #define RF_CTRL_SET_HWI_PRIORITY 5
628 
649 #define RF_CTRL_SET_SWI_PRIORITY 6
650 
656 #define RF_GET_RSSI_ERROR_VAL (-128)
657 #define RF_CMDHANDLE_FLUSH_ALL (-1)
658 #define RF_ALLOC_ERROR (-2)
659 #define RF_SCHEDULE_CMD_ERROR (-3)
660 #define RF_ERROR_RAT_PROG (-255)
661 #define RF_ERROR_INVALID_RFMODE (-256)
662 #define RF_ERROR_CMDFS_SYNTH_PROG (-257)
663 
664 #define RF_NUM_SCHEDULE_MAP_ENTRIES 5
665 #define RF_NUM_SCHEDULE_ACCESS_ENTRIES 2
666 #define RF_NUM_SCHEDULE_COMMAND_ENTRIES (RF_NUM_SCHEDULE_MAP_ENTRIES - RF_NUM_SCHEDULE_ACCESS_ENTRIES)
667 
668 #define RF_SCH_CMD_EXECUTION_TIME_UNKNOWN 0
669 #define RF_RAT_TICKS_PER_US 4
670 
671 
674 #define RF_convertUsToRatTicks(microseconds) \
675  ((microseconds) * (RF_RAT_TICKS_PER_US))
676 
680 #define RF_convertMsToRatTicks(milliseconds) \
681  ((milliseconds) * 1000 * (RF_RAT_TICKS_PER_US))
682 
686 #define RF_convertRatTicksToUs(ticks) \
687  ((ticks) / (RF_RAT_TICKS_PER_US))
688 
692 #define RF_convertRatTicksToMs(ticks) \
693  ((ticks) / (1000 * (RF_RAT_TICKS_PER_US)))
694 
695 
712 typedef rfc_radioOp_t RF_Op;
713 
714 
723 typedef struct {
724  uint8_t rfMode;
725  void (*cpePatchFxn)(void);
726  void (*mcePatchFxn)(void);
727  void (*rfePatchFxn)(void);
728 } RF_Mode;
729 
730 
741 typedef enum {
745 } RF_Priority;
746 
755 typedef enum {
761  RF_StatError = 0x80,
765 } RF_Stat;
766 
771 typedef uint64_t RF_EventMask;
772 
782 typedef union {
783  rfc_command_t commandId;
784 
786  rfc_CMD_RADIO_SETUP_t common;
787  rfc_CMD_BLE5_RADIO_SETUP_t ble5;
788  rfc_CMD_PROP_RADIO_SETUP_t prop;
789  rfc_CMD_PROP_RADIO_DIV_SETUP_t prop_div;
790 } RF_RadioSetup;
791 
792 
821 typedef enum {
823  RF_ClientEventRadioFree = 0x00000002,
824 
829 
833 typedef uint32_t RF_ClientEventMask;
834 
847 typedef int16_t RF_CmdHandle;
848 
855 typedef struct {
856  uint8_t hwiCpe0Priority;
857  uint8_t hwiHwPriority;
858  uint8_t swiCpe0Priority;
859  uint8_t swiHwPriority;
861 
862 
883 #if defined (RF_SINGLEMODE)
884  typedef struct RF_ObjectSingleMode RF_Object;
885 #else
886  typedef struct RF_ObjectMultiMode RF_Object;
887 #endif
888 
889 /* Definition of the RF_Object structure for single-mode applications.
890  * It is applicable with the single-mode RF driver through the #RF_Object common type.
891  */
892 struct RF_ObjectSingleMode{
894  struct {
895  uint32_t nInactivityTimeout;
896  RF_Mode* pRfMode;
897  RF_RadioSetup* pOpSetup;
898  uint32_t nPowerUpDuration;
899  bool bPowerUpXOSC;
900  bool bUpdateSetup;
901  uint16_t nPowerUpDurationMargin;
902  void* pPowerCb;
903  void* pErrCb;
904  } clientConfig;
906  struct {
907  struct {
908  rfc_CMD_FS_t cmdFs;
909  } mode_state;
910  SemaphoreP_Struct semSync;
911  RF_EventMask volatile eventSync;
912  void* pCbSync;
913  RF_EventMask unpendCause;
914  ClockP_Struct clkInactivity;
915  RF_CmdHandle volatile chLastPosted;
916  bool bYielded;
917  } state;
918 };
919 
923 struct RF_ObjectMultiMode{
925  struct {
926  uint32_t nInactivityTimeout;
927  RF_Mode* pRfMode;
928  RF_RadioSetup* pOpSetup;
929  uint32_t nPowerUpDuration;
930  bool bPowerUpXOSC;
931  bool bUpdateSetup;
932  uint16_t nPowerUpDurationMargin;
933  void* pPowerCb;
934  void* pErrCb;
935  void* pClientEventCb;
936  RF_ClientEventMask nClientEventMask;
937  } clientConfig;
939  struct {
940  struct {
941  rfc_CMD_FS_t cmdFs;
942  } mode_state;
943  SemaphoreP_Struct semSync;
944  RF_EventMask volatile eventSync;
945  void* pCbSync;
946  RF_EventMask unpendCause;
947  ClockP_Struct clkInactivity;
948  ClockP_Struct clkReqAccess;
949  RF_CmdHandle volatile chLastPosted;
950  bool bYielded;
951  } state;
952 };
953 
962 
963 
972 typedef int8_t RF_RatHandle;
973 
974 
978 typedef enum {
983 } RF_InfoType;
984 
990 typedef union {
991  RF_CmdHandle ch;
992  uint16_t availRatCh;
993  bool bRadioState;
994  void *pScheduleMap;
995 } RF_InfoVal;
996 
998 typedef struct {
999  RF_Handle pClient;
1000  uint32_t startTime;
1001  uint32_t endTime;
1004 
1006 typedef struct {
1009 } RF_ScheduleMap;
1010 
1011 
1037 typedef void (*RF_Callback)(RF_Handle h, RF_CmdHandle ch, RF_EventMask e);
1038 
1054 typedef void (*RF_ClientCallback)(RF_Handle h, RF_ClientEvent event, void* arg);
1055 
1064 typedef struct {
1066 
1068  uint32_t nPowerUpDuration;
1069 
1073 
1077 
1082 
1087 
1089  RF_ClientEventMask nClientEventMask;
1090 } RF_Params;
1092 
1095 typedef struct {
1096  uint32_t endTime;
1098  bool bIeeeBgCmd;
1100 
1103 typedef struct {
1104  uint32_t duration;
1105  uint32_t startTime;
1108 
1141 extern RF_Handle RF_open(RF_Object *pObj, RF_Mode *pRfMode, RF_RadioSetup *pOpSetup, RF_Params *params);
1142 
1143 
1154 extern void RF_close(RF_Handle h);
1155 
1156 
1167 extern uint32_t RF_getCurrentTime(void);
1168 
1169 
1224 extern RF_CmdHandle RF_postCmd(RF_Handle h, RF_Op* pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);
1225 
1252 extern RF_CmdHandle RF_scheduleCmd(RF_Handle h, RF_Op* pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent);
1253 
1313 extern RF_EventMask RF_pendCmd(RF_Handle h, RF_CmdHandle ch, RF_EventMask bmEvent);
1314 
1315 
1343 extern RF_EventMask RF_runCmd(RF_Handle h, RF_Op* pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent);
1344 
1364 extern RF_EventMask RF_runScheduleCmd(RF_Handle h, RF_Op* pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent);
1365 
1385 extern RF_Stat RF_cancelCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
1386 
1387 
1406 extern RF_Stat RF_flushCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode);
1407 
1421 extern RF_Stat RF_runImmediateCmd(RF_Handle h, uint32_t* pCmdStruct);
1422 
1436 extern RF_Stat RF_runDirectCmd(RF_Handle h, uint32_t cmd);
1437 
1449 extern void RF_yield(RF_Handle h);
1450 
1462 extern void RF_Params_init(RF_Params *params);
1463 
1474 extern RF_Stat RF_getInfo(RF_Handle h, RF_InfoType type, RF_InfoVal *pValue);
1475 
1484 extern int8_t RF_getRssi(RF_Handle h);
1485 
1495 extern RF_Op* RF_getCmdOp(RF_Handle h, RF_CmdHandle cmdHnd);
1496 
1524 extern RF_RatHandle RF_ratCompare(RF_Handle h, rfc_CMD_SET_RAT_CMP_t* pCmdStruct, \
1525  uint32_t compareTime, RF_Callback pRatCb);
1551 extern RF_RatHandle RF_ratCapture(RF_Handle h, uint16_t config, RF_Callback pRatCb);
1552 
1563 extern RF_Stat RF_ratHwOutput(RF_Handle h, uint16_t config);
1564 
1580 extern RF_Stat RF_ratDisableChannel(RF_Handle h, RF_RatHandle ratHandle);
1581 
1592 extern RF_Stat RF_control(RF_Handle h, int8_t ctrl, void *args);
1593 
1612 extern RF_Stat RF_requestAccess(RF_Handle h, RF_AccessParams *pParams);
1613 
1614 #ifdef __cplusplus
1615 }
1616 #endif
1617 
1618 #endif /* ti_drivers_rf__include */
RF_RatHandle RF_ratCapture(RF_Handle h, uint16_t config, RF_Callback pRatCb)
Setup a Radio Timer (RAT) channel in capture mode.
RF_CmdHandle ch
Command handle (RF_GET_CURR_CMD).
Definition: RF.h:991
Command not executed because RF core is powered down.
Definition: RF.h:757
void(* RF_ClientCallback)(RF_Handle h, RF_ClientEvent event, void *arg)
Handles events related to a driver instance.
Definition: RF.h:1054
RF driver configuration parameters.
Definition: RF.h:1064
uint32_t startTime
Start time window in RAT Time for radio access.
Definition: RF.h:1105
RF_Stat RF_ratDisableChannel(RF_Handle h, RF_RatHandle ratHandle)
Disable a RAT channel.
RF_InfoType
Selects the entry of interest in RF_getInfo().
Definition: RF.h:978
uint16_t nPowerUpDurationMargin
Definition: RF.h:1081
The RF core has been powered up the radio setup has been finished.
Definition: RF.h:822
RF_ClientEvent
Client-related RF driver events.
Definition: RF.h:821
RF_Stat
Status codes for various RF driver functions.
Definition: RF.h:755
uint8_t rfMode
Specifies which PHY modes should be activated. Must be set to RF_MODE_MULTIPLE for dual-mode operatio...
Definition: RF.h:724
RF_Priority priority
Intra client priority.
Definition: RF.h:1097
void(* RF_Callback)(RF_Handle h, RF_CmdHandle ch, RF_EventMask e)
Handles events related to RF command execution.
Definition: RF.h:1037
uint8_t swiHwPriority
Priority for HW SWI. Used for all RAT channel callbacks.
Definition: RF.h:859
RF_EventMask RF_pendCmd(RF_Handle h, RF_CmdHandle ch, RF_EventMask bmEvent)
Synchronizes the calling task to an RF operation command ch and returns accumulated event flags...
RF_ClientEventMask nClientEventMask
Definition: RF.h:1089
RF schedule map entry structure.
Definition: RF.h:998
RF_CmdHandle RF_postCmd(RF_Handle h, RF_Op *pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent)
Appends RF operation commands to the driver&#39;s command queue and returns a command handle...
Command finished with success.
Definition: RF.h:762
RF_EventMask RF_runScheduleCmd(RF_Handle h, RF_Op *pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent)
Runs synchronously a (chain of) RF operation(s) for dual or single-mode.
Command not executed because RF driver is busy.
Definition: RF.h:756
Highest priority. Only use this for urgent commands.
Definition: RF.h:742
RF_Stat RF_runImmediateCmd(RF_Handle h, uint32_t *pCmdStruct)
Send any Immediate command.
uint64_t RF_EventMask
Data type for events during command execution.
Definition: RF.h:771
uint32_t RF_ClientEventMask
Event mask for combining RF_ClientEvent event flags in RF_Params::nClientEventMask.
Definition: RF.h:833
uint32_t nPowerUpDuration
Definition: RF.h:1068
Command successfully scheduled for execution.
Definition: RF.h:763
void RF_close(RF_Handle h)
Close client connection to RF driver.
Definition: RF.h:823
Cmd is found in the pool but was already ended.
Definition: RF.h:760
uint8_t hwiCpe0Priority
Priority for INT_RFC_CPE_0 interrupt.
Definition: RF.h:856
RF_Handle RF_open(RF_Object *pObj, RF_Mode *pRfMode, RF_RadioSetup *pOpSetup, RF_Params *params)
Creates a a new client instance of the RF driver.
rfc_CMD_PROP_RADIO_DIV_SETUP_t prop_div
Radio setup command for PROPRIETARY mode on Sub-1 Ghz.
Definition: RF.h:789
RF_Stat RF_ratHwOutput(RF_Handle h, uint16_t config)
Setup RAT HW output. Note radio needs to be ON and and the selected RAT channel should be configured ...
uint32_t RF_getCurrentTime(void)
Return current radio timer value.
Signals the client that the RF driver is about to switch over from another client.
Definition: RF.h:827
Stores output parameters for RF_getInfo().
Definition: RF.h:990
RF_Object * RF_Handle
A handle that is returned by to RF_open().
Definition: RF.h:961
RF_Handle pClient
Pointer to client object.
Definition: RF.h:999
#define RF_NUM_SCHEDULE_ACCESS_ENTRIES
Number of access request entries.
Definition: RF.h:665
RF Hardware attributes.
Definition: RF.h:855
RF_EventMask RF_runCmd(RF_Handle h, RF_Op *pOp, RF_Priority ePri, RF_Callback pCb, RF_EventMask bmEvent)
Runs synchronously an RF operation command or a chain of commands and returns the termination reason...
RF_Priority priority
Priority of the command or access request.
Definition: RF.h:1002
rfc_radioOp_t RF_Op
Base type for all radio operation commands.
Definition: RF.h:712
Default priority. Use this in single-client applications.
Definition: RF.h:744
int8_t RF_getRssi(RF_Handle h)
Get RSSI value.
bool bRadioState
Current RF core power state (RF_GET_RADIO_STATE).
Definition: RF.h:993
uint32_t duration
Radio access duration in RAT Ticks requested by the client.
Definition: RF.h:1104
void RF_yield(RF_Handle h)
Signal that radio client is not going to issue more commands in a while.
#define RF_NUM_SCHEDULE_COMMAND_ENTRIES
Number of scheduled command entries.
Definition: RF.h:666
uint32_t startTime
Start time (in RAT tick) of the command or access request.
Definition: RF.h:1000
uint32_t endTime
End time in RAT Ticks for the radio command.
Definition: RF.h:1096
Create a bitmask showing available RAT channels.
Definition: RF.h:980
RF_Stat RF_flushCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode)
Abort/stop/cancel command and any subsequent commands in command queue.
RF_Stat RF_cancelCmd(RF_Handle h, RF_CmdHandle ch, uint8_t mode)
Abort/stop/cancel single command in command queue.
RF schedule command parameter struct RF schedule command parameters are used with the RF_scheduleCmd(...
Definition: RF.h:1095
RF_Callback pPowerCb
Definition: RF.h:1072
bool bIeeeBgCmd
IEEE 15.4 background command indication. 0: FG cmd, 1: BG cmd.
Definition: RF.h:1098
int16_t RF_CmdHandle
Command handle that is returned by RF_postCmd().
Definition: RF.h:847
RF_ClientCallback pClientEventCb
Definition: RF.h:1086
uint16_t availRatCh
Available RAT channels (RF_GET_AVAIL_RAT_CH).
Definition: RF.h:992
uint8_t swiCpe0Priority
Priority for CPE_0 SWI.
Definition: RF.h:858
RF_Op * RF_getCmdOp(RF_Handle h, RF_CmdHandle cmdHnd)
Get command structure pointer.
General error specifier.
Definition: RF.h:761
bool bPowerUpXOSC
Definition: RF.h:1076
uint32_t endTime
End time (in RAT tick) of the command or access request.
Definition: RF.h:1001
rfc_CMD_RADIO_SETUP_t common
Radio setup command for BLE and IEEE modes.
Definition: RF.h:786
int8_t RF_RatHandle
RAT handle that is returned by RF_ratCompare() or RF_ratCapture().
Definition: RF.h:972
RF request access parameter struct RF request access command parameters are used with the RF_requestA...
Definition: RF.h:1103
RF_Stat RF_getInfo(RF_Handle h, RF_InfoType type, RF_InfoVal *pValue)
Get value for some RF driver parameters.
Command finished with an error.
Definition: RF.h:758
Provide a timetable of all scheduled commands.
Definition: RF.h:982
RF_Priority
Scheduling priority of RF operation commands.
Definition: RF.h:741
Function was called with an invalid parameter.
Definition: RF.h:759
High priority. Use this for time-critical commands in synchronous protocols.
Definition: RF.h:743
RF_RatHandle RF_ratCompare(RF_Handle h, rfc_CMD_SET_RAT_CMP_t *pCmdStruct, uint32_t compareTime, RF_Callback pRatCb)
Setup a Radio Timer (RAT) channel in compare mode.
A unified type for radio setup commands of different PHYs.
Definition: RF.h:782
uint32_t nInactivityTimeout
Definition: RF.h:1065
RF schedule map structure.
Definition: RF.h:1006
RF_Stat RF_requestAccess(RF_Handle h, RF_AccessParams *pParams)
Request radio access.
RF_Stat RF_runDirectCmd(RF_Handle h, uint32_t cmd)
Send any Direct command.
Retrieve a command handle of the current command.
Definition: RF.h:979
Specifies a RF core firmware configuration.
Definition: RF.h:723
rfc_command_t commandId
Definition: RF.h:783
rfc_CMD_PROP_RADIO_SETUP_t prop
Radio setup command for PROPRIETARY mode on 2.4 GHz.
Definition: RF.h:788
rfc_CMD_BLE5_RADIO_SETUP_t ble5
Radio setup command for BLE5 mode.
Definition: RF.h:787
Function finished with success.
Definition: RF.h:764
RF_Callback pErrCb
Callback function for driver error events.
Definition: RF.h:1075
RF_CmdHandle RF_scheduleCmd(RF_Handle h, RF_Op *pOp, RF_ScheduleCmdParams *pSchParams, RF_Callback pCb, RF_EventMask bmEvent)
Schedule an RF operation (chain) to the command queue.
RF_Stat RF_control(RF_Handle h, int8_t ctrl, void *args)
Set RF control parameters.
uint8_t hwiHwPriority
Priority for INT_RFC_HW_COMB interrupt.
Definition: RF.h:857
void RF_Params_init(RF_Params *params)
Function to initialize the RF_Params struct to its defaults.
Stores the client&#39;s internal confguration and states.
Show the current RF core power state. 0: Radio OFF, 1: Radio ON.
Definition: RF.h:981
RF_Priority priority
Access priority.
Definition: RF.h:1106
void * pScheduleMap
Pointer to scheduling map (RF_GET_SCHEDULE_MAP).
Definition: RF.h:994
Copyright 2017, Texas Instruments Incorporated