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 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 interrupt detection on an IO Port. 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) |
Enable/disable the slew control 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. More... | |
static void | IOCIntUnregister (void) |
Unregisters an interrupt handler for a IO edge interrupt. 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 | IOCPinTypeSpis (uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk) |
Configure a set of IOs for standard SPIS peripheral control. More... | |
void | IOCPinTypeAux (uint32_t ui32IOId) |
Configure an IO for AUX control. More... | |
|
inlinestatic |
Clears the IO edge interrupt source.
The specified IO edge interrupt source is cleared, so that it no longer asserts. This function must be called in the interrupt handler to keep the interrupt from being recognized again immediately upon exit.
Definition at line 820 of file ioc.h.
void IOCIntDisable | ( | uint32_t | ui32IOId | ) |
Disables individual IO edge interrupt sources.
This function disables the indicated IO edge interrupt source. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.
void IOCIntEnable | ( | uint32_t | ui32IOId | ) |
Enables individual IO edge detect interrupt.
This function enables the indicated IO edge interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.
ui32IOId | is the IO to enable edge detect interrupt for. |
|
inlinestatic |
Register an interrupt handler for an IO edge interrupt.
This function does the actual registering of the interrupt handler. This function enables the global interrupt in the interrupt controller; specific IO interrupts must be enabled via IOCIntEnable(). It is the interrupt handler's responsibility to clear the interrupt source.
pfnHandler | is a pointer to the function to be called when the IOC interrupt occurs. |
Definition at line 715 of file ioc.h.
|
inlinestatic |
|
inlinestatic |
Unregisters an interrupt handler for a IO edge interrupt.
This function does the actual unregistering of the interrupt handler. It clears the handler to be called when an IO edge interrupt occurs.
Definition at line 742 of file ioc.h.
void IOCIODrvStrengthSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32IOCurrent, | ||
uint32_t | ui32DrvStrength | ||
) |
Configure the drive strength source and current mode of an IO port.
The drive strength of an IO is configured by a combination of multiple settings in several modules. The drive strength source ui32DrvStrength
is used for controlling drive strength at different supply levels. When set to AUTO the battery monitor (BATMON) adjusts the drive strength to compensate for changes in supply voltage in order to keep IO current constant. Alternatively, drive strength source can be controlled manually by selecting one of three options each of which is configurable in the AON IOC by AONIOCDriveStrengthSet().
Each drive strength source has three current modes: Low-Current (LC), High-Current (HC), and Extended-Current (EC), and typically drive strength doubles when selecting a higher mode. I.e. EC = 2 x HC = 4 x LC.
ui32IOId | defines the IO to configure. |
ui32IOCurrent | selects the IO current mode.
|
ui32DrvStrength | sets the source for drive strength control of the IO port.
|
void IOCIOHystSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32Hysteresis | ||
) |
Configure hysteresis on and IO port.
This function is used to enable/disable hysteresis on an IO.
ui32IOId | defines the IO to configure. |
ui32Hysteresis | enable/disable input hysteresis on IO. |
void IOCIOInputSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32Input | ||
) |
Enable/disable IO port as input.
This function is used to enable/disable input on an IO.
ui32IOId | defines the IO to configure. |
ui32Input | enable/disable input on IO. |
void IOCIOIntSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32Int, | ||
uint32_t | ui32EdgeDet | ||
) |
Setup interrupt detection on an IO Port.
This function is used to setup the interrupt detection on an IO.
ui32IOId | defines the IO to configure. |
ui32Int | enables/disables interrupt generation on this IO port. |
ui32EdgeDet | enables/disables edge detection events on this IO port. |
void IOCIOModeSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32IOMode | ||
) |
Set the IO Mode of an IO Port.
This function is used to set the input/output mode of an IO.
ui32IOId | defines the IO to configure. |
ui32IOMode | sets the port IO Mode. |
void IOCIOPortIdSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32PortId | ||
) |
Setup the Port ID for this IO.
The ui32PortId
specifies which functional peripheral to hook up to this IO.
void IOCIOPortPullSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32Pull | ||
) |
Set the pull on an IO port.
This function is used to configure the pull on an IO.
ui32IOId | defines the IO to configure. |
ui32Pull | enables/disables pull on this IO port. |
void IOCIOShutdownSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32IOShutdown | ||
) |
Set wake-up on an IO port.
This function is used to set the wake-up mode of an IO.
ui32IOId | defines the IO to configure. |
ui32IOShutdown | enables wake-up on LOW/HIGH by this IO port. |
void IOCIOSlewCtrlSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32SlewEnable | ||
) |
Enable/disable the slew control on an IO port.
This function is used to enable/disable slew control on an IO.
ui32IOId | defines the IO to configure. |
ui32SlewEnable | enables/disables the slew control on an output. |
void IOCPinTypeAux | ( | uint32_t | ui32IOId | ) |
Configure an IO for AUX control.
Use this function to enable AUX to control a specific IO. Please note, that when using AUX to control the IO, the input/output control in the IOC is bypassed and completely controlled by AUX, so enabling or disabling input in the IOC has no effect.
ui32IOId | is the IO to setup for AUX usage.
|
Definition at line 802 of file ioc.c.
void IOCPinTypeGpioInput | ( | uint32_t | ui32IOId | ) |
void IOCPinTypeGpioOutput | ( | uint32_t | ui32IOId | ) |
void IOCPinTypeI2c | ( | uint32_t | ui32Base, |
uint32_t | ui32Data, | ||
uint32_t | ui32Clk | ||
) |
Configure a set of IOs for standard I2C peripheral control.
ui32Base | is the base address of the I2C module to connect to the IOs |
ui32Data | is the I2C data line
|
ui32Clk | is the I2C input clock
|
Definition at line 733 of file ioc.c.
void IOCPinTypeSpis | ( | uint32_t | ui32Rx, |
uint32_t | ui32Tx, | ||
uint32_t | ui32Fss, | ||
uint32_t | ui32Clk | ||
) |
Configure a set of IOs for standard SPIS peripheral control.
ui32Rx | is the IO to connect to the SPIs MOSI line.
|
ui32Tx | is the IO to connect to the SPIS MISO line.
|
ui32Fss | is the IO to connect to the SPIS FSS line.
|
ui32Clk | is the IO to connect to the SPIS Clock input line.
|
Definition at line 764 of file ioc.c.
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.
ui32Base | is the base address of the SSI module to connect to the IOs |
ui32Rx | is the IO to connect to the SSI MISO line.
|
ui32Tx | is the IO to connect to the SSI MOSI line.
|
ui32Fss | is the IO to connect to the SSI FSS line.
|
ui32Clk | is the IO to connect to the SSI Clock output line.
|
Definition at line 609 of file ioc.c.
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.
ui32Base | is the base address of the SSI module to connect to the IOs |
ui32Rx | is the IO to connect to the SSI MOSI line.
|
ui32Tx | is the IO to connect to the SSI MISO line.
|
ui32Fss | is the IO to connect to the SSI FSS line.
|
ui32Clk | is the IO to connect to the SSI Clock input line. |
Definition at line 671 of file ioc.c.
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.
The UART pins must be properly configured for the UART peripheral to function correctly. This function provides a typical configuration for those pin(s). Other configurations may work as well depending upon the board setup (for example, using the on-chip pull-ups).
ui32Base | is the base address of the UART module. |
ui32Rx | is the IO Id of the IO to use as UART Receive.
|
ui32Tx | is the IO Id of the IO to use as UART Transmit.
|
ui32Cts | is the IO Id of the IO to use for UART Clear to send.
|
ui32Rts | is the IO Id of the IO to use for UART Request to send.
|
Definition at line 570 of file ioc.c.
uint32_t IOCPortConfigureGet | ( | uint32_t | ui32IOId | ) |
Get the configuration of an IO port.
This function is used for getting the configuration of an IO.
Each IO port has a dedicated register for setting up the IO. This function returns the current configuration for the given IO.
void IOCPortConfigureSet | ( | uint32_t | ui32IOId, |
uint32_t | ui32PortId, | ||
uint32_t | ui32IOConfig | ||
) |
Set the configuration of an IO port.
This function is used to configure the functionality of an IO.
The ui32IOId
parameter specifies which IO to configure.
The ui32PortId
parameter specifies which functional peripheral to hook up to this IO.
The ui32IOConfig
parameter consists of a bitwise OR'ed value of all the available configuration modes
Definition at line 115 of file ioc.c.
Referenced by HapiTrimDeviceShutDown(), IOCPinTypeAux(), IOCPinTypeGpioInput(), IOCPinTypeGpioOutput(), IOCPinTypeI2c(), IOCPinTypeSpis(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), and IOCPinTypeUart().
#define IOC_BOTH_EDGES 0x00030000 |
Definition at line 259 of file ioc.h.
Referenced by IOCIOIntSet().
#define IOC_CURRENT_2MA 0x00000000 |
Definition at line 280 of file ioc.h.
Referenced by IOCIODrvStrengthSet(), and IOCPinTypeI2c().
#define IOC_CURRENT_4MA 0x00000400 |
Definition at line 281 of file ioc.h.
Referenced by IOCIODrvStrengthSet().
#define IOC_CURRENT_8MA 0x00000800 |
Definition at line 282 of file ioc.h.
Referenced by IOCIODrvStrengthSet().
#define IOC_FALLING_EDGE 0x00010000 |
Definition at line 257 of file ioc.h.
Referenced by IOCIOIntSet().
#define IOC_HYST_DISABLE 0x00000000 |
Definition at line 222 of file ioc.h.
Referenced by IOCIOHystSet(), and IOCPinTypeI2c().
#define IOC_HYST_ENABLE 0x40000000 |
Definition at line 221 of file ioc.h.
Referenced by HapiTrimDeviceShutDown(), and IOCIOHystSet().
#define IOC_INPUT_DISABLE 0x00000000 |
Definition at line 220 of file ioc.h.
Referenced by IOCIOInputSet().
#define IOC_INPUT_ENABLE 0x20000000 |
Definition at line 219 of file ioc.h.
Referenced by IOCIOInputSet(), and IOCPinTypeI2c().
#define IOC_INT_DISABLE 0x00000000 |
Definition at line 261 of file ioc.h.
Referenced by IOCIOIntSet(), and IOCPinTypeI2c().
#define IOC_INT_ENABLE 0x00040000 |
Definition at line 260 of file ioc.h.
Referenced by IOCIOIntSet().
#define IOC_IOMODE_INV 0x01000000 |
Definition at line 239 of file ioc.h.
Referenced by IOCIOModeSet().
#define IOC_IOMODE_NORMAL 0x00000000 |
Definition at line 238 of file ioc.h.
Referenced by IOCIOModeSet().
#define IOC_IOMODE_OPEN_DRAIN_INV 0x05000000 |
Definition at line 242 of file ioc.h.
Referenced by IOCIOModeSet().
#define IOC_IOMODE_OPEN_DRAIN_NORMAL 0x04000000 |
Definition at line 240 of file ioc.h.
Referenced by IOCIOModeSet(), and IOCPinTypeI2c().
#define IOC_IOMODE_OPEN_SRC_INV 0x07000000 |
Definition at line 247 of file ioc.h.
Referenced by IOCIOModeSet().
#define IOC_IOMODE_OPEN_SRC_NORMAL 0x06000000 |
Definition at line 245 of file ioc.h.
Referenced by IOCIOModeSet().
#define IOC_IOPULL_DOWN 0x00002000 |
Definition at line 271 of file ioc.h.
Referenced by IOCIOPortPullSet().
#define IOC_IOPULL_UP 0x00004000 |
Definition at line 270 of file ioc.h.
Referenced by IOCIOPortPullSet(), and IOCPinTypeI2c().
#define IOC_NO_EDGE 0x00000000 |
Definition at line 256 of file ioc.h.
Referenced by IOCIOIntSet(), and IOCPinTypeI2c().
#define IOC_NO_IOPULL 0x00006000 |
Definition at line 269 of file ioc.h.
Referenced by IOCIOPortPullSet().
#define IOC_NO_WAKE_UP 0x00000000 |
Definition at line 229 of file ioc.h.
Referenced by IOCIOShutdownSet(), and IOCPinTypeI2c().
#define IOC_PORT_AON_CLK32K 0x00000007 |
Definition at line 174 of file ioc.h.
Referenced by HapiTrimDeviceShutDown().
#define IOC_PORT_AON_SCK 0x00000002 |
Definition at line 171 of file ioc.h.
Referenced by IOCPinTypeSpis().
#define IOC_PORT_AON_SCS 0x00000001 |
Definition at line 170 of file ioc.h.
Referenced by IOCPinTypeSpis().
#define IOC_PORT_AON_SDI 0x00000003 |
Definition at line 172 of file ioc.h.
Referenced by IOCPinTypeSpis().
#define IOC_PORT_AON_SDO 0x00000004 |
Definition at line 173 of file ioc.h.
Referenced by IOCPinTypeSpis().
#define IOC_PORT_AUX_IO 0x00000008 |
Definition at line 175 of file ioc.h.
Referenced by IOCPinTypeAux().
#define IOC_PORT_GPIO 0x00000000 |
Definition at line 169 of file ioc.h.
Referenced by IOCPinTypeGpioInput(), and IOCPinTypeGpioOutput().
#define IOC_PORT_MCU_I2C_MSSCL 0x0000000E |
Definition at line 181 of file ioc.h.
Referenced by IOCPinTypeI2c().
#define IOC_PORT_MCU_I2C_MSSDA 0x0000000D |
Definition at line 180 of file ioc.h.
Referenced by IOCPinTypeI2c().
#define IOC_PORT_MCU_SSI0_CLK 0x0000000C |
Definition at line 179 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_SSI0_FSS 0x0000000B |
Definition at line 178 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_SSI0_RX 0x00000009 |
Definition at line 176 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_SSI0_TX 0x0000000A |
Definition at line 177 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_SSI1_CLK 0x00000024 |
Definition at line 198 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_SSI1_FSS 0x00000023 |
Definition at line 197 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_SSI1_RX 0x00000021 |
Definition at line 195 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_SSI1_TX 0x00000022 |
Definition at line 196 of file ioc.h.
Referenced by IOCPinTypeSsiMaster(), and IOCPinTypeSsiSlave().
#define IOC_PORT_MCU_UART0_CTS 0x00000011 |
Definition at line 184 of file ioc.h.
Referenced by IOCPinTypeUart().
#define IOC_PORT_MCU_UART0_RTS 0x00000012 |
Definition at line 185 of file ioc.h.
Referenced by IOCPinTypeUart().
#define IOC_PORT_MCU_UART0_RX 0x0000000F |
Definition at line 182 of file ioc.h.
Referenced by IOCPinTypeUart().
#define IOC_PORT_MCU_UART0_TX 0x00000010 |
Definition at line 183 of file ioc.h.
Referenced by IOCPinTypeUart().
#define IOC_PORT_RFC_GPI1 0x00000034 |
Definition at line 210 of file ioc.h.
Referenced by IOCIOPortIdSet(), and IOCPortConfigureSet().
#define IOC_RISING_EDGE 0x00020000 |
Definition at line 258 of file ioc.h.
Referenced by IOCIOIntSet().
#define IOC_SLEW_DISABLE 0x00000000 |
Definition at line 218 of file ioc.h.
Referenced by IOCIOSlewCtrlSet(), and IOCPinTypeI2c().
#define IOC_SLEW_ENABLE 0x00001000 |
Definition at line 217 of file ioc.h.
Referenced by IOCIOSlewCtrlSet().
#define IOC_STD_INPUT |
Definition at line 297 of file ioc.h.
Referenced by HapiTrimDeviceShutDown(), IOCPinTypeAux(), IOCPinTypeGpioInput(), IOCPinTypeSpis(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), and IOCPinTypeUart().
#define IOC_STD_OUTPUT |
Definition at line 302 of file ioc.h.
Referenced by IOCPinTypeGpioOutput(), IOCPinTypeSpis(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), and IOCPinTypeUart().
#define IOC_STRENGTH_AUTO 0x00000000 |
Definition at line 284 of file ioc.h.
Referenced by IOCIODrvStrengthSet(), and IOCPinTypeI2c().
#define IOC_STRENGTH_MAX 0x00000300 |
Definition at line 286 of file ioc.h.
Referenced by IOCIODrvStrengthSet().
#define IOC_STRENGTH_MED 0x00000200 |
Definition at line 288 of file ioc.h.
Referenced by IOCIODrvStrengthSet().
#define IOC_STRENGTH_MIN 0x00000100 |
Definition at line 290 of file ioc.h.
Referenced by IOCIODrvStrengthSet().
#define IOC_WAKE_ON_HIGH 0x18000000 |
Definition at line 231 of file ioc.h.
Referenced by IOCIOShutdownSet().
#define IOC_WAKE_ON_LOW 0x10000000 |
Definition at line 230 of file ioc.h.
Referenced by IOCIOShutdownSet().
#define IOID_31 0x0000001F |
Definition at line 152 of file ioc.h.
Referenced by IOCIntClear(), IOCIntDisable(), IOCIntEnable(), IOCIntStatus(), IOCIODrvStrengthSet(), IOCIOHystSet(), IOCIOInputSet(), IOCIOIntSet(), IOCIOModeSet(), IOCIOPortIdSet(), IOCIOPortPullSet(), IOCIOShutdownSet(), IOCIOSlewCtrlSet(), IOCPinTypeAux(), IOCPinTypeGpioInput(), IOCPinTypeGpioOutput(), IOCPinTypeI2c(), IOCPinTypeSpis(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), IOCPinTypeUart(), IOCPortConfigureGet(), and IOCPortConfigureSet().
#define IOID_UNUSED 0xFFFFFFFF |
Definition at line 153 of file ioc.h.
Referenced by IOCPinTypeAux(), IOCPinTypeI2c(), IOCPinTypeSpis(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), and IOCPinTypeUart().