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