CC26xx Driver Library
ioc.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include "../inc/hw_types.h"
#include "../inc/hw_memmap.h"
#include "../inc/hw_ioc.h"
#include "../inc/hw_ints.h"
#include "interrupt.h"
#include "debug.h"
#include "gpio.h"

Macros

#define NUM_IO_MAX   32
 
#define IOID_0   0x00000000
 
#define IOID_1   0x00000001
 
#define IOID_2   0x00000002
 
#define IOID_3   0x00000003
 
#define IOID_4   0x00000004
 
#define IOID_5   0x00000005
 
#define IOID_6   0x00000006
 
#define IOID_7   0x00000007
 
#define IOID_8   0x00000008
 
#define IOID_9   0x00000009
 
#define IOID_10   0x0000000A
 
#define IOID_11   0x0000000B
 
#define IOID_12   0x0000000C
 
#define IOID_13   0x0000000D
 
#define IOID_14   0x0000000E
 
#define IOID_15   0x0000000F
 
#define IOID_16   0x00000010
 
#define IOID_17   0x00000011
 
#define IOID_18   0x00000012
 
#define IOID_19   0x00000013
 
#define IOID_20   0x00000014
 
#define IOID_21   0x00000015
 
#define IOID_22   0x00000016
 
#define IOID_23   0x00000017
 
#define IOID_24   0x00000018
 
#define IOID_25   0x00000019
 
#define IOID_26   0x0000001A
 
#define IOID_27   0x0000001B
 
#define IOID_28   0x0000001C
 
#define IOID_29   0x0000001D
 
#define IOID_30   0x0000001E
 
#define IOID_31   0x0000001F
 
#define IOID_UNUSED   0xFFFFFFFF
 
#define IOC_IOID_MASK   0x000000FF
 
#define NUM_IO_PORTS   56
 
#define IOC_PORT_GPIO   0x00000000
 
#define IOC_PORT_AON_CLK32K   0x00000007
 
#define IOC_PORT_AUX_IO   0x00000008
 
#define IOC_PORT_MCU_SSI0_RX   0x00000009
 
#define IOC_PORT_MCU_SSI0_TX   0x0000000A
 
#define IOC_PORT_MCU_SSI0_FSS   0x0000000B
 
#define IOC_PORT_MCU_SSI0_CLK   0x0000000C
 
#define IOC_PORT_MCU_I2C_MSSDA   0x0000000D
 
#define IOC_PORT_MCU_I2C_MSSCL   0x0000000E
 
#define IOC_PORT_MCU_UART0_RX   0x0000000F
 
#define IOC_PORT_MCU_UART0_TX   0x00000010
 
#define IOC_PORT_MCU_UART0_CTS   0x00000011
 
#define IOC_PORT_MCU_UART0_RTS   0x00000012
 
#define IOC_PORT_MCU_UART1_RX   0x00000013
 
#define IOC_PORT_MCU_UART1_TX   0x00000014
 
#define IOC_PORT_MCU_UART1_CTS   0x00000015
 
#define IOC_PORT_MCU_UART1_RTS   0x00000016
 
#define IOC_PORT_MCU_PORT_EVENT0   0x00000017
 
#define IOC_PORT_MCU_PORT_EVENT1   0x00000018
 
#define IOC_PORT_MCU_PORT_EVENT2   0x00000019
 
#define IOC_PORT_MCU_PORT_EVENT3   0x0000001A
 
#define IOC_PORT_MCU_PORT_EVENT4   0x0000001B
 
#define IOC_PORT_MCU_PORT_EVENT5   0x0000001C
 
#define IOC_PORT_MCU_PORT_EVENT6   0x0000001D
 
#define IOC_PORT_MCU_PORT_EVENT7   0x0000001E
 
#define IOC_PORT_MCU_SWV   0x00000020
 
#define IOC_PORT_MCU_SSI1_RX   0x00000021
 
#define IOC_PORT_MCU_SSI1_TX   0x00000022
 
#define IOC_PORT_MCU_SSI1_FSS   0x00000023
 
#define IOC_PORT_MCU_SSI1_CLK   0x00000024
 
#define IOC_PORT_MCU_I2S_AD0   0x00000025
 
#define IOC_PORT_MCU_I2S_AD1   0x00000026
 
#define IOC_PORT_MCU_I2S_WCLK   0x00000027
 
#define IOC_PORT_MCU_I2S_BCLK   0x00000028
 
#define IOC_PORT_MCU_I2S_MCLK   0x00000029
 
#define IOC_PORT_RFC_TRC   0x0000002E
 
#define IOC_PORT_RFC_GPO0   0x0000002F
 
#define IOC_PORT_RFC_GPO1   0x00000030
 
#define IOC_PORT_RFC_GPO2   0x00000031
 
#define IOC_PORT_RFC_GPO3   0x00000032
 
#define IOC_PORT_RFC_GPI0   0x00000033
 
#define IOC_PORT_RFC_GPI1   0x00000034
 
#define IOC_PORT_RFC_SMI_DL_OUT   0x00000035
 
#define IOC_PORT_RFC_SMI_DL_IN   0x00000036
 
#define IOC_PORT_RFC_SMI_CL_OUT   0x00000037
 
#define IOC_PORT_RFC_SMI_CL_IN   0x00000038
 
#define IOC_SLEW_ENABLE   0x00001000
 
#define IOC_SLEW_DISABLE   0x00000000
 
#define IOC_INPUT_ENABLE   0x20000000
 
#define IOC_INPUT_DISABLE   0x00000000
 
#define IOC_HYST_ENABLE   0x40000000
 
#define IOC_HYST_DISABLE   0x00000000
 
#define IOC_NO_WAKE_UP   0x00000000
 
#define IOC_WAKE_ON_LOW   0x10000000
 
#define IOC_WAKE_ON_HIGH   0x18000000
 
#define IOC_IOMODE_NORMAL   0x00000000
 
#define IOC_IOMODE_INV   0x01000000
 
#define IOC_IOMODE_OPEN_DRAIN_NORMAL   0x04000000
 
#define IOC_IOMODE_OPEN_DRAIN_INV   0x05000000
 
#define IOC_IOMODE_OPEN_SRC_NORMAL   0x06000000
 
#define IOC_IOMODE_OPEN_SRC_INV   0x07000000
 
#define IOC_NO_EDGE   0x00000000
 
#define IOC_FALLING_EDGE   0x00010000
 
#define IOC_RISING_EDGE   0x00020000
 
#define IOC_BOTH_EDGES   0x00030000
 
#define IOC_INT_ENABLE   0x00040000
 
#define IOC_INT_DISABLE   0x00000000
 
#define IOC_INT_M   0x00070000
 
#define IOC_NO_IOPULL   0x00006000
 
#define IOC_IOPULL_UP   0x00004000
 
#define IOC_IOPULL_DOWN   0x00002000
 
#define IOC_IOPULL_M   0x00006000
 
#define IOC_IOPULL_M   0x00006000
 
#define IOC_CURRENT_2MA   0x00000000
 
#define IOC_CURRENT_4MA   0x00000400
 
#define IOC_CURRENT_8MA   0x00000800
 
#define IOC_STRENGTH_AUTO   0x00000000
 
#define IOC_STRENGTH_MAX   0x00000300
 
#define IOC_STRENGTH_MED   0x00000200
 
#define IOC_STRENGTH_MIN   0x00000100
 
#define IOC_EVT_AON_PROG2_DISABLE   0x00000000
 
#define IOC_EVT_AON_PROG2_ENABLE   0x00800000
 
#define IOC_EVT_AON_PROG1_DISABLE   0x00000000
 
#define IOC_EVT_AON_PROG1_ENABLE   0x00400000
 
#define IOC_EVT_AON_PROG0_DISABLE   0x00000000
 
#define IOC_EVT_AON_PROG0_ENABLE   0x00200000
 
#define IOC_EVT_RTC_DISABLE   0x00000000
 
#define IOC_EVT_RTC_ENABLE   0x00000080
 
#define IOC_EVT_MCU_WU_DISABLE   0x00000000
 
#define IOC_EVT_MCU_WU_ENABLE   0x00000040
 
#define IOC_STD_INPUT
 
#define IOC_STD_OUTPUT
 

Functions

void IOCPortConfigureSet (uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
 Set the configuration of an IO port. More...
 
uint32_t IOCPortConfigureGet (uint32_t ui32IOId)
 Get the configuration of an IO port. More...
 
void IOCIOShutdownSet (uint32_t ui32IOId, uint32_t ui32IOShutdown)
 Set wake-up mode from shutdown on an IO port. More...
 
void IOCIOModeSet (uint32_t ui32IOId, uint32_t ui32IOMode)
 Set the IO Mode of an IO Port. More...
 
void IOCIOIntSet (uint32_t ui32IOId, uint32_t ui32Int, uint32_t ui32EdgeDet)
 Setup edge detection and interrupt generation on an IO Port. More...
 
void IOCIOEvtSet (uint32_t ui32IOId, uint32_t ui32Evt)
 Setup event generation on IO edge detection. More...
 
void IOCIOPortPullSet (uint32_t ui32IOId, uint32_t ui32Pull)
 Set the pull on an IO port. More...
 
void IOCIOHystSet (uint32_t ui32IOId, uint32_t ui32Hysteresis)
 Configure hysteresis on and IO port. More...
 
void IOCIOInputSet (uint32_t ui32IOId, uint32_t ui32Input)
 Enable/disable IO port as input. More...
 
void IOCIOSlewCtrlSet (uint32_t ui32IOId, uint32_t ui32SlewEnable)
 Configure slew rate on an IO port. More...
 
void IOCIODrvStrengthSet (uint32_t ui32IOId, uint32_t ui32IOCurrent, uint32_t ui32DrvStrength)
 Configure the drive strength source and current mode of an IO port. More...
 
void IOCIOPortIdSet (uint32_t ui32IOId, uint32_t ui32PortId)
 Setup the Port ID for this IO. More...
 
static void IOCIntRegister (void(*pfnHandler)(void))
 Register an interrupt handler for an IO edge interrupt in the dynamic interrupt table. More...
 
static void IOCIntUnregister (void)
 Unregisters an interrupt handler for a IO edge interrupt in the dynamic interrupt table. More...
 
void IOCIntEnable (uint32_t ui32IOId)
 Enables individual IO edge detect interrupt. More...
 
void IOCIntDisable (uint32_t ui32IOId)
 Disables individual IO edge interrupt sources. More...
 
static void IOCIntClear (uint32_t ui32IOId)
 Clears the IO edge interrupt source. More...
 
static uint32_t IOCIntStatus (uint32_t ui32IOId)
 Returns the status of the IO interrupts. More...
 
void IOCPinTypeGpioInput (uint32_t ui32IOId)
 Setup an IO for standard GPIO input. More...
 
void IOCPinTypeGpioOutput (uint32_t ui32IOId)
 Setup an IO for standard GPIO output. More...
 
void IOCPinTypeUart (uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Cts, uint32_t ui32Rts)
 Configure a set of IOs for standard UART peripheral control. More...
 
void IOCPinTypeSsiMaster (uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)
 Configure a set of IOs for standard SSI peripheral master control. More...
 
void IOCPinTypeSsiSlave (uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)
 Configure a set of IOs for standard SSI peripheral slave control. More...
 
void IOCPinTypeI2c (uint32_t ui32Base, uint32_t ui32Data, uint32_t ui32Clk)
 Configure a set of IOs for standard I2C peripheral control. More...
 
void IOCPinTypeAux (uint32_t ui32IOId)
 Configure an IO for AUX control. More...