#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_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... | |