CC13xx Driver Library
[ioc.h] I/O Controller

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

Detailed Description

Introduction

The Input/Output Controller (IOC) controls the functionality of the pins (called DIO). The IOC consists of two APIs:

For more information on the AON IOC see the AON IOC API.

Note
The output driver of a DIO is not configured by the IOC API (except for drive strength); instead, it is controlled by the peripheral module which is selected to control the DIO.

A DIO is considered "software controlled" if it is configured for GPIO control which allows the System CPU to set the value of the DIO via the GPIO API. Alternatively, a DIO can be "hardware controlled" if it is controlled by other modules than GPIO.

API

The API functions can be grouped like this:

Configure all settings at the same time:

Configure individual settings:

Handle edge detection events:

Configure IOCs for typical use cases (can also be used as example code):

Function Documentation

static void IOCIntClear ( uint32_t  ui32IOId)
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.

Note
Due to write buffers and synchronizers in the system it may take several clock cycles from a register write clearing an event in a module and until the event is actually cleared in the NVIC of the system CPU. It is recommended to clear the event source early in the interrupt service routine (ISR) to allow the event clear to propagate to the NVIC before returning from the ISR. At the same time, an early event clear allows new events of the same type to be pended instead of ignored if the event is cleared later in the ISR. It is the responsibility of the programmer to make sure that enough time has passed before returning from the ISR to avoid false re-triggering of the cleared event. A simple, although not necessarily optimal, way of clearing an event before returning from the ISR is:
  1. Write to clear event (interrupt source). (buffered write)
  2. Dummy read from the event source module. (making sure the write has propagated)
  3. Wait two system CPU clock cycles (user code or two NOPs). (allowing cleared event to propagate through any synchronizers)
Parameters
ui32IOIdis the IO causing the interrupt.
Returns
None
810 {
811  // Check the arguments.
812  ASSERT(ui32IOId <= IOID_31);
813 
814  // Clear the requested interrupt source by clearing the event.
815  GPIO_clearEventDio(ui32IOId);
816 }
static void GPIO_clearEventDio(uint32_t dioNumber)
Clears the IO event status of a specific DIO.
Definition: gpio.h:591
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151

Here is the call graph for this function:

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.

Parameters
ui32IOIdis the IO edge interrupt source to be disabled.
Returns
None
403 {
404  uint32_t ui32IOReg;
405  uint32_t ui32Config;
406 
407  // Check the arguments.
408  ASSERT(ui32IOId <= IOID_31);
409 
410  // Get the register address.
411  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
412 
413  // Disable the specified interrupt.
414  ui32Config = HWREG(ui32IOReg);
415  ui32Config &= ~IOC_IOCFG0_EDGE_IRQ_EN;
416  HWREG(ui32IOReg) = ui32Config;
417 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
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.

Parameters
ui32IOIdis the IO to enable edge detect interrupt for.
Returns
None
380 {
381  uint32_t ui32IOReg;
382  uint32_t ui32Config;
383 
384  // Check the arguments.
385  ASSERT(ui32IOId <= IOID_31);
386 
387  // Get the register address.
388  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
389 
390  // Enable the specified interrupt.
391  ui32Config = HWREG(ui32IOReg);
392  ui32Config |= IOC_IOCFG0_EDGE_IRQ_EN;
393  HWREG(ui32IOReg) = ui32Config;
394 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
static void IOCIntRegister ( void(*)(void)  pfnHandler)
inlinestatic

Register an interrupt handler for an IO edge interrupt in the dynamic interrupt table.

Note
Only use this function if you want to use the dynamic vector table (in SRAM)!

This function registers a function as the interrupt handler for a specific interrupt and enables the corresponding 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.

Parameters
pfnHandleris a pointer to the function to be called when the IOC interrupt occurs.
Returns
None
See also
IntRegister() for important information about registering interrupt handlers.
713 {
714  // Register the interrupt handler.
715  IntRegister(INT_AON_GPIO_EDGE, pfnHandler);
716 
717  // Enable the IO edge interrupt.
718  IntEnable(INT_AON_GPIO_EDGE);
719 }
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
Registers a function as an interrupt handler in the dynamic vector table.
Definition: interrupt.c:153
void IntEnable(uint32_t ui32Interrupt)
Enables an interrupt or system exception.
Definition: interrupt.c:283

Here is the call graph for this function:

static uint32_t IOCIntStatus ( uint32_t  ui32IOId)
inlinestatic

Returns the status of the IO interrupts.

Parameters
ui32IOIdis the IO to get the status for.
Returns
None
832 {
833  // Check the arguments.
834  ASSERT(ui32IOId <= IOID_31);
835 
836  // Get the event status.
837  return (GPIO_getEventDio(ui32IOId));
838 }
static uint32_t GPIO_getEventDio(uint32_t dioNumber)
Gets the event status of a specific DIO.
Definition: gpio.h:539
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151

Here is the call graph for this function:

static void IOCIntUnregister ( void  )
inlinestatic

Unregisters an interrupt handler for a IO edge interrupt in the dynamic interrupt table.

This function does the actual unregistering of the interrupt handler. It clears the handler to be called when an IO edge interrupt occurs.

Returns
None
See also
IntRegister() for important information about registering interrupt handlers.
736 {
737  // Disable the interrupts.
738  IntDisable(INT_AON_GPIO_EDGE);
739 
740  // Unregister the interrupt handler.
741  IntUnregister(INT_AON_GPIO_EDGE);
742 }
void IntUnregister(uint32_t ui32Interrupt)
Unregisters an interrupt handler in the dynamic vector table.
Definition: interrupt.c:189
void IntDisable(uint32_t ui32Interrupt)
Disables an interrupt or system exception.
Definition: interrupt.c:327

Here is the call graph for this function:

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.

Note
Not all IOs support Extended-Current mode. See datasheet for more information on the specific device.
Parameters
ui32IOIddefines the IO to configure.
ui32IOCurrentselects the IO current mode.
ui32DrvStrengthsets the source for drive strength control of the IO port.
Returns
None
326 {
327  uint32_t ui32IOReg;
328  uint32_t ui32Config;
329 
330  // Check the arguments.
331  ASSERT(ui32IOId <= IOID_31);
332  ASSERT((ui32IOCurrent == IOC_CURRENT_2MA) ||
333  (ui32IOCurrent == IOC_CURRENT_4MA) ||
334  (ui32IOCurrent == IOC_CURRENT_8MA));
335  ASSERT((ui32DrvStrength == IOC_STRENGTH_MIN) ||
336  (ui32DrvStrength == IOC_STRENGTH_MAX) ||
337  (ui32DrvStrength == IOC_STRENGTH_MED) ||
338  (ui32DrvStrength == IOC_STRENGTH_AUTO));
339 
340  // Get the register address.
341  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
342 
343  // Configure the IO.
344  ui32Config = HWREG(ui32IOReg);
345  ui32Config &= ~(IOC_IOCFG0_IOCURR_M | IOC_IOCFG0_IOSTR_M);
346  HWREG(ui32IOReg) = ui32Config | (ui32IOCurrent | ui32DrvStrength);
347 }
#define IOC_STRENGTH_MED
Definition: ioc.h:287
#define IOC_STRENGTH_MAX
Definition: ioc.h:285
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_STRENGTH_MIN
Definition: ioc.h:289
#define IOC_CURRENT_2MA
Definition: ioc.h:279
#define IOC_CURRENT_8MA
Definition: ioc.h:281
#define IOC_CURRENT_4MA
Definition: ioc.h:280
#define IOC_STRENGTH_AUTO
Definition: ioc.h:283
#define IOID_31
Definition: ioc.h:151
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.

Parameters
ui32IOIddefines the IO to configure.
ui32Hysteresisenable/disable input hysteresis on IO.
Returns
None
250 {
251  uint32_t ui32IOReg;
252  uint32_t ui32Config;
253 
254  // Check the arguments.
255  ASSERT(ui32IOId <= IOID_31);
256  ASSERT((ui32Hysteresis == IOC_HYST_ENABLE) ||
257  (ui32Hysteresis == IOC_HYST_DISABLE));
258 
259  // Get the register address.
260  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
261 
262  // Configure the IO.
263  ui32Config = HWREG(ui32IOReg);
264  ui32Config &= ~IOC_IOCFG0_HYST_EN;
265  HWREG(ui32IOReg) = ui32Config | ui32Hysteresis;
266 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_HYST_ENABLE
Definition: ioc.h:220
#define IOC_HYST_DISABLE
Definition: ioc.h:221
#define IOID_31
Definition: ioc.h:151
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.

Parameters
ui32IOIddefines the IO to configure.
ui32Inputenable/disable input on IO.
Returns
None
275 {
276  uint32_t ui32IOReg;
277  uint32_t ui32Config;
278 
279  // Check the arguments.
280  ASSERT(ui32IOId <= IOID_31);
281  ASSERT((ui32Input == IOC_INPUT_ENABLE) ||
282  (ui32Input == IOC_INPUT_DISABLE));
283 
284  // Get the register address.
285  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
286 
287  // Configure the IO.
288  ui32Config = HWREG(ui32IOReg);
289  ui32Config &= ~IOC_IOCFG0_IE;
290  HWREG(ui32IOReg) = ui32Config | ui32Input;
291 }
#define IOC_INPUT_ENABLE
Definition: ioc.h:218
#define IOC_INPUT_DISABLE
Definition: ioc.h:219
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
void IOCIOIntSet ( uint32_t  ui32IOId,
uint32_t  ui32Int,
uint32_t  ui32EdgeDet 
)

Setup edge detection and interrupt generation on an IO Port.

This function is used to setup the edge detection and interrupt generation on an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32Intenables/disables interrupt generation on this IO port.
ui32EdgeDetenables/disables edge detection events on this IO port.
Returns
None
195 {
196  uint32_t ui32IOReg;
197  uint32_t ui32Config;
198 
199  // Check the arguments.
200  ASSERT(ui32IOId <= IOID_31);
201  ASSERT((ui32Int == IOC_INT_ENABLE) ||
202  (ui32Int == IOC_INT_DISABLE));
203  ASSERT((ui32EdgeDet == IOC_NO_EDGE) ||
204  (ui32EdgeDet == IOC_FALLING_EDGE) ||
205  (ui32EdgeDet == IOC_RISING_EDGE) ||
206  (ui32EdgeDet == IOC_BOTH_EDGES));
207 
208  // Get the register address.
209  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
210 
211  // Configure the IO.
212  ui32Config = HWREG(ui32IOReg);
214  HWREG(ui32IOReg) = ui32Config | ((ui32Int ? IOC_IOCFG0_EDGE_IRQ_EN : 0) | ui32EdgeDet);
215 }
#define IOC_FALLING_EDGE
Definition: ioc.h:256
#define IOC_BOTH_EDGES
Definition: ioc.h:258
#define IOC_INT_DISABLE
Definition: ioc.h:260
#define IOC_RISING_EDGE
Definition: ioc.h:257
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_NO_EDGE
Definition: ioc.h:255
#define IOC_INT_ENABLE
Definition: ioc.h:259
#define IOID_31
Definition: ioc.h:151
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.

Parameters
ui32IOIddefines the IO to configure.
ui32IOModesets the port IO Mode.
Returns
None
166 {
167  uint32_t ui32Reg;
168  uint32_t ui32Config;
169 
170  // Check the arguments.
171  ASSERT(ui32IOId <= IOID_31);
172  ASSERT((ui32IOMode == IOC_IOMODE_NORMAL) ||
173  (ui32IOMode == IOC_IOMODE_INV) ||
174  (ui32IOMode == IOC_IOMODE_OPEN_DRAIN_NORMAL) ||
175  (ui32IOMode == IOC_IOMODE_OPEN_DRAIN_INV) ||
176  (ui32IOMode == IOC_IOMODE_OPEN_SRC_NORMAL) ||
177  (ui32IOMode == IOC_IOMODE_OPEN_SRC_INV));
178 
179  // Get the register address.
180  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
181 
182  // Configure the IO.
183  ui32Config = HWREG(ui32Reg);
184  ui32Config &= ~IOC_IOCFG0_IOMODE_M;
185  HWREG(ui32Reg) = ui32Config | ui32IOMode;
186 }
#define IOC_IOMODE_OPEN_SRC_INV
Definition: ioc.h:246
#define IOC_IOMODE_OPEN_DRAIN_INV
Definition: ioc.h:241
#define IOC_IOMODE_OPEN_SRC_NORMAL
Definition: ioc.h:244
#define IOC_IOMODE_INV
Definition: ioc.h:238
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_IOMODE_OPEN_DRAIN_NORMAL
Definition: ioc.h:239
#define IOID_31
Definition: ioc.h:151
#define IOC_IOMODE_NORMAL
Definition: ioc.h:237
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.

Parameters
ui32IOIddefines the IO to configure.
ui32PortIdselects the port to map to the IO.
Returns
None
356 {
357  uint32_t ui32IOReg;
358  uint32_t ui32Config;
359 
360  // Check the arguments.
361  ASSERT(ui32IOId <= IOID_31);
362  ASSERT(ui32PortId <= IOC_PORT_RFC_GPI1);
363 
364  // Get the register address.
365  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
366 
367  // Configure the IO.
368  ui32Config = HWREG(ui32IOReg);
369  ui32Config &= ~IOC_IOCFG0_PORT_ID_M;
370  HWREG(ui32IOReg) = ui32Config | ui32PortId;
371 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
#define IOC_PORT_RFC_GPI1
Definition: ioc.h:205
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.

Parameters
ui32IOIddefines the IO to configure.
ui32Pullenables/disables pull on this IO port.
Returns
None
224 {
225  uint32_t ui32IOReg;
226  uint32_t ui32Config;
227 
228  // Check the argument.
229  ASSERT(ui32IOId <= IOID_31);
230  ASSERT((ui32Pull == IOC_NO_IOPULL) ||
231  (ui32Pull == IOC_IOPULL_UP) ||
232  (ui32Pull == IOC_IOPULL_DOWN));
233 
234  // Get the register address.
235  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
236 
237  // Configure the IO.
238  ui32Config = HWREG(ui32IOReg);
239  ui32Config &= ~IOC_IOCFG0_PULL_CTL_M;
240  HWREG(ui32IOReg) = ui32Config | ui32Pull;
241 }
#define IOC_IOPULL_DOWN
Definition: ioc.h:270
#define IOC_IOPULL_UP
Definition: ioc.h:269
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
#define IOC_NO_IOPULL
Definition: ioc.h:268
void IOCIOShutdownSet ( uint32_t  ui32IOId,
uint32_t  ui32IOShutdown 
)

Set wake-up mode from shutdown on an IO port.

This function is used to set the wake-up mode from shutdown of an IO.

IO must be configured as input in order for wakeup to work. See IOCIOInputSet().

Parameters
ui32IOIddefines the IO to configure.
ui32IOShutdownenables wake-up from shutdown on LOW/HIGH by this IO port.
Returns
None
139 {
140  uint32_t ui32Reg;
141  uint32_t ui32Config;
142 
143  // Check the arguments.
144  ASSERT(ui32IOId <= IOID_31);
145  ASSERT((ui32IOShutdown == IOC_NO_WAKE_UP) ||
146  (ui32IOShutdown == IOC_WAKE_ON_LOW) ||
147  (ui32IOShutdown == IOC_WAKE_ON_HIGH));
148 
149  // Get the register address.
150  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
151 
152  // Configure the IO.
153  ui32Config = HWREG(ui32Reg);
154  ui32Config &= ~IOC_IOCFG0_WU_CFG_M;
155  HWREG(ui32Reg) = ui32Config | ui32IOShutdown;
156 }
#define IOC_WAKE_ON_HIGH
Definition: ioc.h:230
#define IOC_NO_WAKE_UP
Definition: ioc.h:228
#define IOC_WAKE_ON_LOW
Definition: ioc.h:229
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
void IOCIOSlewCtrlSet ( uint32_t  ui32IOId,
uint32_t  ui32SlewEnable 
)

Configure slew rate on an IO port.

This function is used to enable/disable reduced slew rate on an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32SlewEnableenables/disables reduced slew rate on an output.
Returns
None
300 {
301  uint32_t ui32IOReg;
302  uint32_t ui32Config;
303 
304  // Check the arguments.
305  ASSERT(ui32IOId <= IOID_31);
306  ASSERT((ui32SlewEnable == IOC_SLEW_ENABLE) ||
307  (ui32SlewEnable == IOC_SLEW_DISABLE));
308 
309  // Get the register address.
310  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
311 
312  // Configure the IO.
313  ui32Config = HWREG(ui32IOReg);
314  ui32Config &= ~IOC_IOCFG0_SLEW_RED;
315  HWREG(ui32IOReg) = ui32Config | ui32SlewEnable;
316 }
#define IOC_SLEW_ENABLE
Definition: ioc.h:216
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_SLEW_DISABLE
Definition: ioc.h:217
#define IOID_31
Definition: ioc.h:151
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.

Note
The IOs available for AUX control can vary from device to device.
Parameters
ui32IOIdis the IO to setup for AUX usage.
Returns
None
639 {
640  // Check the arguments.
641  ASSERT((ui32IOId <= IOID_31) || (ui32IOId == IOID_UNUSED));
642 
643  // Setup the IO.
645 }
#define IOC_PORT_AUX_IO
Definition: ioc.h:170
#define IOID_UNUSED
Definition: ioc.h:152
#define IOC_STD_INPUT
Definition: ioc.h:297
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOID_31
Definition: ioc.h:151

Here is the call graph for this function:

void IOCPinTypeGpioInput ( uint32_t  ui32IOId)

Setup an IO for standard GPIO input.

Setup an IO for standard GPIO input with the following configuration:

Parameters
ui32IOIdis the IO to setup for GPIO input
Returns
None
426 {
427  // Check the arguments.
428  ASSERT(ui32IOId <= IOID_31);
429 
430  // Setup the IO for standard input.
432 
433  // Enable input mode in the GPIO module.
435 }
#define IOC_STD_INPUT
Definition: ioc.h:297
#define IOC_PORT_GPIO
Definition: ioc.h:168
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define GPIO_OUTPUT_DISABLE
Definition: gpio.h:150
#define IOID_31
Definition: ioc.h:151
static void GPIO_setOutputEnableDio(uint32_t dioNumber, uint32_t outputEnableValue)
Sets output enable of a specific DIO.
Definition: gpio.h:479

Here is the call graph for this function:

void IOCPinTypeGpioOutput ( uint32_t  ui32IOId)

Setup an IO for standard GPIO output.

Setup an IO for standard GPIO output with the following configuration:

Parameters
ui32IOIdis the IO to setup for GPIO output
Returns
None
444 {
445  // Check the arguments.
446  ASSERT(ui32IOId <= IOID_31);
447 
448  // Setup the IO for standard input.
450 
451  // Enable output mode in the GPIO module.
453 }
#define IOC_PORT_GPIO
Definition: ioc.h:168
#define GPIO_OUTPUT_ENABLE
Definition: gpio.h:151
#define IOC_STD_OUTPUT
Definition: ioc.h:302
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOID_31
Definition: ioc.h:151
static void GPIO_setOutputEnableDio(uint32_t dioNumber, uint32_t outputEnableValue)
Sets output enable of a specific DIO.
Definition: gpio.h:479

Here is the call graph for this function:

void IOCPinTypeI2c ( uint32_t  ui32Base,
uint32_t  ui32Data,
uint32_t  ui32Clk 
)

Configure a set of IOs for standard I2C peripheral control.

Parameters
ui32Baseis the base address of the I2C module to connect to the IOs
ui32Datais the I2C data line
ui32Clkis the I2C input clock
Returns
None
613 {
614  uint32_t ui32IOConfig;
615 
616  // Check the arguments.
617  ASSERT((ui32Data <= IOID_31) || (ui32Data == IOID_UNUSED));
618  ASSERT((ui32Clk <= IOID_31) || (ui32Clk == IOID_UNUSED));
619 
620  // Define the IO configuration parameters.
621  ui32IOConfig = IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | IOC_IOPULL_UP |
625 
626  // Setup the IOs in the desired configuration.
627  IOCPortConfigureSet(ui32Data, IOC_PORT_MCU_I2C_MSSDA, ui32IOConfig);
628  IOCPortConfigureSet(ui32Clk, IOC_PORT_MCU_I2C_MSSCL, ui32IOConfig);
629 }
#define IOC_INPUT_ENABLE
Definition: ioc.h:218
#define IOC_PORT_MCU_I2C_MSSDA
Definition: ioc.h:175
#define IOID_UNUSED
Definition: ioc.h:152
#define IOC_IOPULL_UP
Definition: ioc.h:269
#define IOC_PORT_MCU_I2C_MSSCL
Definition: ioc.h:176
#define IOC_INT_DISABLE
Definition: ioc.h:260
#define IOC_NO_WAKE_UP
Definition: ioc.h:228
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_CURRENT_2MA
Definition: ioc.h:279
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_NO_EDGE
Definition: ioc.h:255
#define IOC_IOMODE_OPEN_DRAIN_NORMAL
Definition: ioc.h:239
#define IOC_SLEW_DISABLE
Definition: ioc.h:217
#define IOC_STRENGTH_AUTO
Definition: ioc.h:283
#define IOC_HYST_DISABLE
Definition: ioc.h:221
#define IOID_31
Definition: ioc.h:151

Here is the call graph for this function:

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.

Parameters
ui32Baseis the base address of the SSI module to connect to the IOs
ui32Rxis the IO to connect to the SSI MISO line.
ui32Txis the IO to connect to the SSI MOSI line.
ui32Fssis the IO to connect to the SSI FSS line.
ui32Clkis the IO to connect to the SSI Clock output line.
Returns
None
499 {
500  // Check the arguments.
501  ASSERT((ui32Base == SSI0_BASE) || (ui32Base == SSI1_BASE));
502  ASSERT((ui32Rx <= IOID_31) || (ui32Rx == IOID_UNUSED));
503  ASSERT((ui32Tx <= IOID_31) || (ui32Tx == IOID_UNUSED));
504  ASSERT((ui32Fss <= IOID_31) || (ui32Fss == IOID_UNUSED));
505  ASSERT((ui32Clk <= IOID_31) || (ui32Clk == IOID_UNUSED));
506 
507  // Setup the IOs in the desired configuration.
508  if(ui32Base == SSI0_BASE)
509  {
510  if(ui32Rx != IOID_UNUSED)
511  {
513  }
514  if(ui32Tx != IOID_UNUSED)
515  {
517  }
518  if(ui32Fss != IOID_UNUSED)
519  {
521  }
522  if(ui32Clk != IOID_UNUSED)
523  {
525  }
526  }
527  else
528  {
529  if(ui32Rx != IOID_UNUSED)
530  {
532  }
533  if(ui32Tx != IOID_UNUSED)
534  {
536  }
537  if(ui32Fss != IOID_UNUSED)
538  {
540  }
541  if(ui32Clk != IOID_UNUSED)
542  {
544  }
545  }
546 }
#define IOC_PORT_MCU_SSI1_RX
Definition: ioc.h:190
#define IOC_PORT_MCU_SSI1_TX
Definition: ioc.h:191
#define IOC_PORT_MCU_SSI1_CLK
Definition: ioc.h:193
#define IOID_UNUSED
Definition: ioc.h:152
#define IOC_STD_INPUT
Definition: ioc.h:297
#define IOC_STD_OUTPUT
Definition: ioc.h:302
#define IOC_PORT_MCU_SSI0_TX
Definition: ioc.h:172
#define IOC_PORT_MCU_SSI1_FSS
Definition: ioc.h:192
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_PORT_MCU_SSI0_CLK
Definition: ioc.h:174
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_PORT_MCU_SSI0_RX
Definition: ioc.h:171
#define IOID_31
Definition: ioc.h:151
#define IOC_PORT_MCU_SSI0_FSS
Definition: ioc.h:173

Here is the call graph for this function:

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.

Parameters
ui32Baseis the base address of the SSI module to connect to the IOs
ui32Rxis the IO to connect to the SSI MOSI line.
ui32Txis the IO to connect to the SSI MISO line.
ui32Fssis the IO to connect to the SSI FSS line.
ui32Clkis the IO to connect to the SSI Clock input line.
Returns
None
557 {
558  // Check the arguments.
559  ASSERT((ui32Base == SSI0_BASE) || (ui32Base == SSI1_BASE));
560  ASSERT((ui32Rx <= IOID_31) || (ui32Rx == IOID_UNUSED));
561  ASSERT((ui32Tx <= IOID_31) || (ui32Tx == IOID_UNUSED));
562  ASSERT((ui32Fss <= IOID_31) || (ui32Fss == IOID_UNUSED));
563  ASSERT((ui32Clk <= IOID_31) || (ui32Clk == IOID_UNUSED));
564 
565  // Setup the IOs in the desired configuration.
566  if(ui32Base == SSI0_BASE)
567  {
568  if(ui32Rx != IOID_UNUSED)
569  {
571  }
572  if(ui32Tx != IOID_UNUSED)
573  {
575  }
576  if(ui32Fss != IOID_UNUSED)
577  {
579  }
580  if(ui32Clk != IOID_UNUSED)
581  {
583  }
584  }
585  else
586  {
587  if(ui32Rx != IOID_UNUSED)
588  {
590  }
591  if(ui32Tx != IOID_UNUSED)
592  {
594  }
595  if(ui32Fss != IOID_UNUSED)
596  {
598  }
599  if(ui32Clk != IOID_UNUSED)
600  {
602  }
603  }
604 }
#define IOC_PORT_MCU_SSI1_RX
Definition: ioc.h:190
#define IOC_PORT_MCU_SSI1_TX
Definition: ioc.h:191
#define IOC_PORT_MCU_SSI1_CLK
Definition: ioc.h:193
#define IOID_UNUSED
Definition: ioc.h:152
#define IOC_STD_INPUT
Definition: ioc.h:297
#define IOC_STD_OUTPUT
Definition: ioc.h:302
#define IOC_PORT_MCU_SSI0_TX
Definition: ioc.h:172
#define IOC_PORT_MCU_SSI1_FSS
Definition: ioc.h:192
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_PORT_MCU_SSI0_CLK
Definition: ioc.h:174
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_PORT_MCU_SSI0_RX
Definition: ioc.h:171
#define IOID_31
Definition: ioc.h:151
#define IOC_PORT_MCU_SSI0_FSS
Definition: ioc.h:173

Here is the call graph for this function:

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

Note
If a UART pin is not intended to be used, then the parameter in the function should be IOID_UNUSED.
Parameters
ui32Baseis the base address of the UART module.
ui32Rxis the IO Id of the IO to use as UART Receive.
ui32Txis the IO Id of the IO to use as UART Transmit.
ui32Ctsis the IO Id of the IO to use for UART Clear to send.
ui32Rtsis the IO Id of the IO to use for UART Request to send.
Returns
None
463 {
464  // Check the arguments.
465  ASSERT(ui32Base == UART0_BASE);
466  ASSERT((ui32Rx <= IOID_31) || (ui32Rx == IOID_UNUSED));
467  ASSERT((ui32Tx <= IOID_31) || (ui32Tx == IOID_UNUSED));
468  ASSERT((ui32Cts <= IOID_31) || (ui32Cts == IOID_UNUSED));
469  ASSERT((ui32Rts <= IOID_31) || (ui32Rts == IOID_UNUSED));
470 
471  // Setup the IOs in the desired configuration.
472  if(ui32Rx != IOID_UNUSED)
473  {
475  }
476  if(ui32Tx != IOID_UNUSED)
477  {
479  }
480  if(ui32Cts != IOID_UNUSED)
481  {
483  }
484  if(ui32Rts != IOID_UNUSED)
485  {
487  }
488 }
#define IOC_PORT_MCU_UART0_RTS
Definition: ioc.h:180
#define IOID_UNUSED
Definition: ioc.h:152
#define IOC_STD_INPUT
Definition: ioc.h:297
#define IOC_STD_OUTPUT
Definition: ioc.h:302
#define IOC_PORT_MCU_UART0_TX
Definition: ioc.h:178
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_PORT_MCU_UART0_RX
Definition: ioc.h:177
#define IOC_PORT_MCU_UART0_CTS
Definition: ioc.h:179
#define IOID_31
Definition: ioc.h:151

Here is the call graph for this function:

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.

Parameters
ui32IOIdselects the IO to return the configuration for.
Returns
Returns the IO Port configuration. See IOCPortConfigureSet() for configuration options.
119 {
120  uint32_t ui32Reg;
121 
122  // Check the arguments.
123  ASSERT(ui32IOId <= IOID_31);
124 
125  // Get the register address.
126  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
127 
128  // Return the IO configuration.
129  return HWREG(ui32Reg);
130 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
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

Note
All IO Ports are tied to a specific functionality in a sub module except for the IOC_PORT_AUX_IO. Each of the IOs in the AUX domain are hardcoded to a specific IO. When enabling one or more pins for the AUX domain, they should all be configured to using IOC_PORT_AUX_IO.
Parameters
ui32IOIddefines the IO to configure and must be one of the following:
ui32PortIdselects the functional IO port to connect. The available IO ports are:
ui32IOConfigis the IO configuration consisting of the bitwise OR of all configuration modes:
Returns
None

Referenced by IOCPinTypeAux(), IOCPinTypeGpioInput(), IOCPinTypeGpioOutput(), IOCPinTypeI2c(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), IOCPinTypeUart(), and SetupAfterColdResetWakeupFromShutDownCfg3().

98 {
99  uint32_t ui32Reg;
100 
101  // Check the arguments.
102  ASSERT(ui32IOId <= IOID_31);
103  ASSERT(ui32PortId <= IOC_PORT_RFC_GPI1);
104 
105  // Get the register address.
106  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
107 
108  // Configure the port.
109  HWREG(ui32Reg) = ui32IOConfig | ui32PortId;
110 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:151
#define IOC_PORT_RFC_GPI1
Definition: ioc.h:205

Macro Definition Documentation

#define IOC_BOTH_EDGES   0x00030000

Referenced by IOCIOIntSet().

#define IOC_CURRENT_2MA   0x00000000
#define IOC_CURRENT_4MA   0x00000400

Referenced by IOCIODrvStrengthSet().

#define IOC_CURRENT_8MA   0x00000800

Referenced by IOCIODrvStrengthSet().

#define IOC_FALLING_EDGE   0x00010000

Referenced by IOCIOIntSet().

#define IOC_HYST_DISABLE   0x00000000

Referenced by IOCIOHystSet(), and IOCPinTypeI2c().

#define IOC_HYST_ENABLE   0x40000000
#define IOC_INPUT_DISABLE   0x00000000

Referenced by IOCIOInputSet().

#define IOC_INPUT_ENABLE   0x20000000

Referenced by IOCIOInputSet(), and IOCPinTypeI2c().

#define IOC_INT_DISABLE   0x00000000

Referenced by IOCIOIntSet(), and IOCPinTypeI2c().

#define IOC_INT_ENABLE   0x00040000

Referenced by IOCIOIntSet().

#define IOC_INT_M   0x00070000
#define IOC_IOID_MASK   0x000000FF
#define IOC_IOMODE_INV   0x01000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_NORMAL   0x00000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_OPEN_DRAIN_INV   0x05000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_OPEN_DRAIN_NORMAL   0x04000000

Referenced by IOCIOModeSet(), and IOCPinTypeI2c().

#define IOC_IOMODE_OPEN_SRC_INV   0x07000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_OPEN_SRC_NORMAL   0x06000000

Referenced by IOCIOModeSet().

#define IOC_IOPULL_DOWN   0x00002000

Referenced by IOCIOPortPullSet().

#define IOC_IOPULL_M   0x00006000
#define IOC_IOPULL_M   0x00006000
#define IOC_IOPULL_UP   0x00004000

Referenced by IOCIOPortPullSet(), and IOCPinTypeI2c().

#define IOC_NO_EDGE   0x00000000

Referenced by IOCIOIntSet(), and IOCPinTypeI2c().

#define IOC_NO_IOPULL   0x00006000

Referenced by IOCIOPortPullSet().

#define IOC_NO_WAKE_UP   0x00000000

Referenced by IOCIOShutdownSet(), and IOCPinTypeI2c().

#define IOC_PORT_AON_CLK32K   0x00000007
#define IOC_PORT_AUX_IO   0x00000008

Referenced by IOCPinTypeAux().

#define IOC_PORT_GPIO   0x00000000
#define IOC_PORT_MCU_I2C_MSSCL   0x0000000E

Referenced by IOCPinTypeI2c().

#define IOC_PORT_MCU_I2C_MSSDA   0x0000000D

Referenced by IOCPinTypeI2c().

#define IOC_PORT_MCU_I2S_AD0   0x00000025
#define IOC_PORT_MCU_I2S_AD1   0x00000026
#define IOC_PORT_MCU_I2S_BCLK   0x00000028
#define IOC_PORT_MCU_I2S_MCLK   0x00000029
#define IOC_PORT_MCU_I2S_WCLK   0x00000027
#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_SSI0_CLK   0x0000000C
#define IOC_PORT_MCU_SSI0_FSS   0x0000000B
#define IOC_PORT_MCU_SSI0_RX   0x00000009
#define IOC_PORT_MCU_SSI0_TX   0x0000000A
#define IOC_PORT_MCU_SSI1_CLK   0x00000024
#define IOC_PORT_MCU_SSI1_FSS   0x00000023
#define IOC_PORT_MCU_SSI1_RX   0x00000021
#define IOC_PORT_MCU_SSI1_TX   0x00000022
#define IOC_PORT_MCU_SWV   0x00000020
#define IOC_PORT_MCU_UART0_CTS   0x00000011

Referenced by IOCPinTypeUart().

#define IOC_PORT_MCU_UART0_RTS   0x00000012

Referenced by IOCPinTypeUart().

#define IOC_PORT_MCU_UART0_RX   0x0000000F

Referenced by IOCPinTypeUart().

#define IOC_PORT_MCU_UART0_TX   0x00000010

Referenced by IOCPinTypeUart().

#define IOC_PORT_RFC_GPI0   0x00000033
#define IOC_PORT_RFC_GPI1   0x00000034
#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_SMI_CL_IN   0x00000038
#define IOC_PORT_RFC_SMI_CL_OUT   0x00000037
#define IOC_PORT_RFC_SMI_DL_IN   0x00000036
#define IOC_PORT_RFC_SMI_DL_OUT   0x00000035
#define IOC_PORT_RFC_TRC   0x0000002E
#define IOC_RISING_EDGE   0x00020000

Referenced by IOCIOIntSet().

#define IOC_SLEW_DISABLE   0x00000000

Referenced by IOCIOSlewCtrlSet(), and IOCPinTypeI2c().

#define IOC_SLEW_ENABLE   0x00001000

Referenced by IOCIOSlewCtrlSet().

#define IOC_STD_INPUT
Value:
IOC_NO_IOPULL | IOC_SLEW_DISABLE | \
IOC_HYST_DISABLE | IOC_NO_EDGE | \
IOC_INT_DISABLE | IOC_IOMODE_NORMAL | \
IOC_NO_WAKE_UP | IOC_INPUT_ENABLE )
#define IOC_INPUT_ENABLE
Definition: ioc.h:218
#define IOC_CURRENT_2MA
Definition: ioc.h:279
#define IOC_NO_EDGE
Definition: ioc.h:255
#define IOC_SLEW_DISABLE
Definition: ioc.h:217
#define IOC_STRENGTH_AUTO
Definition: ioc.h:283
#define IOC_IOMODE_NORMAL
Definition: ioc.h:237

Referenced by IOCPinTypeAux(), IOCPinTypeGpioInput(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), IOCPinTypeUart(), and SetupAfterColdResetWakeupFromShutDownCfg3().

#define IOC_STD_OUTPUT
Value:
IOC_NO_IOPULL | IOC_SLEW_DISABLE | \
IOC_HYST_DISABLE | IOC_NO_EDGE | \
IOC_INT_DISABLE | IOC_IOMODE_NORMAL | \
IOC_NO_WAKE_UP | IOC_INPUT_DISABLE )
#define IOC_INPUT_DISABLE
Definition: ioc.h:219
#define IOC_CURRENT_2MA
Definition: ioc.h:279
#define IOC_NO_EDGE
Definition: ioc.h:255
#define IOC_SLEW_DISABLE
Definition: ioc.h:217
#define IOC_STRENGTH_AUTO
Definition: ioc.h:283
#define IOC_IOMODE_NORMAL
Definition: ioc.h:237

Referenced by IOCPinTypeGpioOutput(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), and IOCPinTypeUart().

#define IOC_STRENGTH_AUTO   0x00000000
#define IOC_STRENGTH_MAX   0x00000300

Referenced by IOCIODrvStrengthSet().

#define IOC_STRENGTH_MED   0x00000200

Referenced by IOCIODrvStrengthSet().

#define IOC_STRENGTH_MIN   0x00000100

Referenced by IOCIODrvStrengthSet().

#define IOC_WAKE_ON_HIGH   0x18000000

Referenced by IOCIOShutdownSet().

#define IOC_WAKE_ON_LOW   0x10000000

Referenced by IOCIOShutdownSet().

#define IOID_0   0x00000000
#define IOID_1   0x00000001
#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_2   0x00000002
#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_3   0x00000003
#define IOID_30   0x0000001E
#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_UNUSED   0xFFFFFFFF
#define NUM_IO_MAX   32
#define NUM_IO_PORTS   56